Blocks are now represented by unique_ptrs instead of shared_ptrs.