add closures, groovy can let you do some horrible things