abstract the keyboard scroll, etc.