allow NULL allocator