Rewrite the Block Factory to use Block Pool. Will add unit test later.