A little Java, a few patterns - Felleisen, Matthias; Friedman, Daniel P. (MIT Press, 2000)