why always design patterns with java?! Groovy design patterns!