         return coordinator
     }()
     
-    lazy var managedObjectContext: NSManagedObjectContext? = {
+    lazy var defaultManagedObjectContext: NSManagedObjectContext? = {
         let coordinator = self.persistentStoreCoordinator
         if coordinator == nil {
             return nil

    
    private func read(entityName: String, predicate: NSPredicate? = nil, context: NSManagedObjectContext? = nil) -> [AnyObject]? {
        var results: [AnyObject]? = nil
        if let moc = (context != nil ? context! : self.managedObjectContext) {
            var error: NSError? = nil
            var request = NSFetchRequest(entityName: entityName)
            if predicate != nil {

        return results
    }
    
    private func save (context: NSManagedObjectContext? = nil) {
        if let moc = (context != nil ? context! : self.defaultManagedObjectContext) {
            var error: NSError? = nil
            if moc.hasChanges && !moc.save(&error) {
            }
        }
    }
    
    private func delete(object: NSManagedObject, context: NSManagedObjectContext? = nil) {
        if let moc = (context != nil ? context! : self.defaultManagedObjectContext) {
            moc.deleteObject(object)
        }
    }
    
    private func delete(entityName: String, predicate: NSPredicate? = nil, context: NSManagedObjectContext? = nil) {
        if let moc = (context != nil ? context! : self.defaultManagedObjectContext) {
            if let objects = read(entityName, predicate: predicate, context: moc) as? [NSManagedObject] {
                for object: NSManagedObject in objects {
                    delete(object)
