unfinished, several functions left
static member function
test new allocator
unfinished