NSCoding compliant + dictionaryRepresentation for easy serialization