                 let p = Plist(plistObject: any)
                 pAr.append(p)
             }
-            self.init(array: pAr)
+            self.entityType = .Array(pAr)
             
         case let array as [Plist]:
-            println()
-            self.init(array: array)
+            self.entityType = .Array(array)
             
         case let dictionary as [String : Plist]:
-            self.init(dictionary: dictionary)
+            self.entityType = .Dictionary(dictionary)
             
         case let dictionary as NSDictionary:
             var dic : [String : Plist] = [:]

        switch plistObject {
            
        case let string as String:
            self.init(string: string)
            
        case let float as Float:
            self.init(float:float)
            
        case let double as Double:
            self.init(float: Float(double))
            
        case let date as NSDate:
            self.init(date: date)
            
        case let int as Int:
            self.init(int: int)
            
        case let bool as Bool:
            self.init(bool: bool)
            
        case let data as NSData:
            self.init(data: data)
            
        case let plist as Plist:
            self.init(plist: plist)
           
        case let array as NSArray:
            var pAr : [Plist] = []

import Swift

public struct Plist {
    
    private var entityType : EntityType
    private enum EntityType {
        case String(Swift.String)
        case Number(NSNumber)
        case Date(NSDate)
        case Data(NSData)
        case Array([Plist])
        case Dictionary([Swift.String : Plist])
    }
    
    //MARK:- Entity Creation
    
    /** Create a Plist from a Raw values that are Plist Convertible or Plist.
    @warning Will crash if not convertible
