add platform abstration layer

finish joystick class