modified with joystick read