colors & knobs part extracted, using StateT s IO ()