refine allocator