works up, down, left, right