shared_ptr wip