This now handles moving in a combination of directions.