Replace a mishmash of pointers in the Block and BlockContents classes with std::unique_ptr