haskell, plus cleanup
scrolling still sucks