general purpose OOP that adds Smalltalk-style messaging