add cope/move constructor