Java software solutions : foundations of program design - Lewis, John, 1963-; Loftus, William (Addison-Wesley/Pearson, 2012)