implement arrow keys; refactor