implementing BlockManager