Thinking in Java updated.