custom memory allocator support