refactored the whole joystick class, now handling touch input propperly