in the middle of monad transformers
colors & knobs part extracted, using StateT s IO ()
All components are independent
very stateT
key handler
Merge branch 'using-monad-transformers'