Added some diagrams for keyboard and mouse handling. Should we try an approach like this?