add default move constructor and assignment