smart allocator