using boost::object_pool