unique_ptr/shared_ptr for reference count
memory installation