custom allocator
merge