designing a keyboard from scratch