Much more work done in Blocks.v