guide to object oriented programming and modularity 9488245