Keyboard now can diff previous state