Code refactoring for the object types - This revision does NOT compile.