Patterns, Reusable Blocks and Block Locking