The allocator is a singleton, so no need to pass it in to the constructor
Non-singleton allocator, must be passed in
See Implementation