update allocator constructor to use allocator_traits