a toy shared_ptr