     /// The underlying persistant store is set hardcoded to use an sqlite database and as basic migration options
     /// (`NSMigratePersistentStoresAutomaticallyOption` and `NSInferMappingModelAutomaticallyOption`) set to true.
     
+    
     public required init(bundle: NSBundle, modelName: String, containerURL: NSURL, inMemoryStore: Bool = false, logOutput: Bool = false) throws {
+        
+        //Options
         self.bundle = bundle
         self.modelName = modelName
         self.containerURL = containerURL
         self.inMemoryStore = inMemoryStore
         
+        
+        //logging
         loggingOn = logOutput
         
-        
+        //store settings
         storeType = inMemoryStore ? NSInMemoryStoreType : NSSQLiteStoreType
         storeOptions = [
             NSMigratePersistentStoresAutomaticallyOption : true,
             NSInferMappingModelAutomaticallyOption : true
         ]
         
-        //managedObjectModel
+        
+        //
+        //
+        // STACK SETUP
+        //
+        //
+        
+        // Baking the full setup chain into the initializer to maintain `let` semantics for the `mainContext.
+        // Not very pretty but it's better for the api interface because using `var` + implicity unwrapped
+        // optional implies the instance could changed under the hood.
+        
+        //<><><><> managedObjectModel
         let modelURL = bundle.URLForResource(modelName, withExtension: "momd")
         guard let mURL = modelURL else {
             Log("Unabled able to find object model file with name: \(modelName)")
             throw CoreDataStackError.InvalidModelPath(path: modelURL)
         }
-  
         managedObjectModel = NSManagedObjectModel(contentsOfURL: mURL)!
         
-        //writingContext
+        
+        //<><><><> writingContext
         guard let psc = persistentStoreCoordinator else {
             fatalError("Attempting to create `writingContext` before the `persistentStoreCoordinator` is set up.")
         }
-        
         writingContext = NSManagedObjectContext(concurrencyType: .PrivateQueueConcurrencyType)
         writingContext.persistentStoreCoordinator = psc
         
-        //mainContext
+        
+        //<><><><> mainContext
         mainContext = NSManagedObjectContext(concurrencyType: .MainQueueConcurrencyType)
         mainContext.parentContext = writingContext
         
-        //persistentStoreCoordinator
+        
+        //<><><><> persistentStoreCoordinator
         persistentStoreCoordinator = NSPersistentStoreCoordinator(managedObjectModel: managedObjectModel)
         let url = containerURL.URLByAppendingPathComponent("\(modelName).sqlite")
-        
         do {
             try persistentStoreCoordinator?.addPersistentStoreWithType(storeType, configuration: nil, URL: url, options: storeOptions)
         }

extension CoreDataStack {
    
    //Convenience for dispatching back on the main queue
    private func onMain(withError error: ErrorType? = nil, call completion: ErrorCompletionBlock?)  {
        dispatch_async(dispatch_get_main_queue()) {
            completion?(error: error)
        }

            }
        }
    }
    ///The main context. a NSManagedObjectContext that is created with the MainQueueConcurrencyType concurrencyType.
    public let mainContext: NSManagedObjectContext
    
