implemented keyboardstate movement, better than event based