first version of pool_allocator