control by keyboard