added move and copy, still untested