         let propertyList = class_copyPropertyList(aClass, &propertyCount)
         let propertyTypes = NSMutableDictionary.new()
         let cleanupSet = NSCharacterSet.init(charactersInString: "\"@(){}")
-
+        
         for (var i: UInt32 = 0; i < propertyCount; i++) {
             let property: objc_property_t = propertyList[Int(i)]
             let propertyName = NSString(UTF8String: property_getName(property))

        
        return propertyTypes.copy() as! Dictionary
    }

    func propertyTypes() -> NSDictionary {
        var reference: AnyClass = self.superclass!
        let mutableDictionary = NSMutableDictionary.new()
        mutableDictionary.addEntriesFromDictionary(propertyTypesForClass(self.classForCoder))
        
        while reference.superclass() != nil {
            mutableDictionary.addEntriesFromDictionary(propertyTypesForClass(reference))

        
        return mutableDictionary.copy() as! NSDictionary
    }
    
    class func initWithDictionary(dictionary :NSDictionary) -> Self? {
        return self.init().fill(dictionary)
    }
    
    private func mirrorClass() -> AnyClass? {
        return NSClassFromString(reflect(self).summary)
    }
    
    func dictionaryRepresentation() -> NSDictionary {
        var aClass: AnyClass = self.classForCoder
        
        if let craftClass: AnyClass = self.mirrorClass() {
            aClass = craftClass
        }
        
        var propertyCount: UInt32 = 0
        var propertyList = class_copyPropertyList(aClass, &propertyCount)
        var properties: NSMutableDictionary = NSMutableDictionary.new()
        var i: UInt32
        
