Factor out Shady UI into own class. Start on compilation via Haskell plugins library.