Brought Moving to compilation. Started using monads (-ish); its WAY cleaner