Version 2: Add Obj.type & Obj.extend