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