pool_allocator implement