Still don't understand haskell but have ideas.