Understanding object oriented programing - Budd, Timothy (Addison-wesley, 2000)