         }
     }
     
-    class func createObjectFromDict< T : JSONObject >(dict: Dictionary<String, AnyObject?>) -> T {
+    public class func createObjectFromDict< T : JSONObject >(dict: Dictionary<String, AnyObject?>) -> T {
         
         var obj = T()
         obj.setPropertiesFromDictionary(dict)
         return obj
     }
     
-    private func registerClass(anyClass: AnyClass, propertyKey: String, jsonKey: String, format: String?) {
+    public func registerClass(anyClass: AnyClass, propertyKey: String, jsonKey: String, format: String?) {
         
         var mapping = Mapping()
         mapping.mClass = anyClass

//}

protocol WebApiManagerDelegate {
    public func webApiRestObjectID() -> Int?
}

@objc protocol JsonMappingDelegate {
    optional public func registerClassesForJsonMapping()
}

public class JSONObject: NSObject, WebApiManagerDelegate, JsonMappingDelegate {

        classMappings[propertyKey] = mapping
    }
    
    public func registerClass(anyClass: AnyClass, propertyKey: String, jsonKey: String) {
        
        registerClass(anyClass, propertyKey: propertyKey, jsonKey: jsonKey, format: nil)
    }
    
    public func registerClass(anyClass: AnyClass, forKey: String) {
        
        registerClass(anyClass, propertyKey: forKey, jsonKey: forKey)
    }
    
    public func registerDate(propertyKey: String, jsonKey: String, format: String) {
        
        registerClass(NSDate.self, propertyKey: propertyKey, jsonKey: jsonKey, format: format)
    }
    
    public func registerDate(forKey: String, format: String) {
        
        registerDate(forKey, jsonKey: forKey, format: format)
    }
