* accept allocator upon construction * no allocator-extended move ctor due to type erasure (we can't pass it to pools)