A minor part of the material presented here has been adapted from Principles of Object-Oriented Software Development by Anton Eliëns, (c) 1995 Addison-Wesley Publishing Co. Inc.