repalace auto_ptr to unique_ptr
add error handling
add error message string
add char* string packing