move constructor and destructor definitions