Java software solutions : foundations of program design - Lewis, John, 1963- (Pearson/ Addison-Wesley, 2007)