draft cleanup of SharedPtr<> - hopefully close to fixing enable_shared_from_this