new file:   allocator.hpp