move keyboard controls to a service