An introduction to object-oriented programming with java - Thomas