• We redesigned the entire code base to increase clarity of presentation and consistency in style and convention, including reliance on type inference, as introduced in Java 7, to reduce clutter when instantiating generic types. • We added 38 new figures, and redesigned 144 existing figures. • We re