Abstract out the object creation code, and document the object system