Thinking in Java 4th and Source Code