Java Software solutions : foundations of program design - Lewis, John