added memory allocator interface