Add Groovy, remove most boilerplate code