added enumeratePropertiesUsingBlock: and setPropertiesFrom: