implemented move function. appears to work. would love to know how to implement generics in go