try to improve move function
try to improve move function