Java software solutions: Foundations of program design - Lewis, John (Pearson Education Inc., 2007)