much more move implementation