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