http://blog.araneaframework.org/2006/11/21/zero-turn-around-in-java/