implement tile movement