added keyboard functionality WIP