Adding category methods on NSObject:
+ (NSSet *) propertyNames;
- (NSDictionary *) propertiesByName;