InputSystem implementation