added keyboard code