lots of additions
added lhaskell