dynamic keyboard - CS449 HCI