Во вводных документах много параграфов посвящено объяснению разницы между new() и make(), но на практике вы можете создавать объекты в локальной области видимости и возвращать их.
new()
make()
Почему вы используете пару аллокаторов?