stl like allocator, exposing external interface for the library