adding Groovy support
reorganising classes and adding some unit tests in Groovy
reorganising classes