Java outside in - Bolker, Ethan D. (Cambridge University Press, 2003)