adding keyboard interaction