allow custom allocator, cosmetic changes