Rewrote extensively and added Kata/Kata.hs