beginnings of an object model