added move operators and move constructors