source code of Thinking in Java and others