新的allocator实现