 
 public extension NSManagedObject {
     
+    /**
+    Create a managed object
+    
+    :param: entityName entityName of object to create.
+    
+    :returns: Entity Description
+    */
     public class func create(#entityName: String) -> NSManagedObject? {
         return ActiveRecord.driver?.create(entityName, context: ActiveRecord.driver?.context())
     }
     
+    /**
+    Create a temporary managed object which does not live inside a managed object context.
+    
+    :param: entityName entityName of object to create.
+    
+    :returns: Entity Description
+    */
     public class func createAsTemporary(#entityName: String) -> NSManagedObject? {
         if let context = NSManagedObjectContext.context() {
             if let entityDescription = NSEntityDescription.entityForName(entityName, inManagedObjectContext: context) {

        return false
    }

    public class func context() -> NSManagedObjectContext? {
        return ActiveRecord.driver?.context()
    }

}

public extension NSManagedObjectContext {
    
    /**
    Save the managed object context
    */
    public func save() {
        var error: NSError? = nil
        ActiveRecord.driver?.save(self, error: &error)
    }
    
    /**
    Save the managed object context
    */
    public class func save() {
        var error: NSError? = nil
        ActiveRecord.driver?.save(ActiveRecord.driver?.context(), error: &error)
    }

    /**
    Save the managed object context with error pointer paramter
    
    :param: error error pointer parameter
    
    :returns: true for success
    */
    public class func save(error: NSErrorPointer) -> Bool {
        if let driver =  ActiveRecord.driver {
            return driver.save(ActiveRecord.driver?.context(), error: error)
