     
     private lazy var toDosController: NSFetchedResultsController = {
         
-        let fetchRequest = NSFetchRequest(entityName: ToDo.entityName())
+        let fetchRequest = NSFetchRequest(entityName: ToDoMetaData.entityName())
         fetchRequest.includesSubentities = true
-        fetchRequest.sortDescriptors = [NSSortDescriptor(key: "metaData.sectionIdentifier", ascending: true), NSSortDescriptor(key: "metaData.internalOrder", ascending: false)]
+        fetchRequest.sortDescriptors = [NSSortDescriptor(key: "sectionIdentifier", ascending: true), NSSortDescriptor(key: "internalOrder", ascending: false)]
         
-        let controller = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: "metaData.sectionIdentifier", cacheName: nil)
+        let controller = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: "sectionIdentifier", cacheName: nil)
         
         controller.performFetch(nil)
         controller.delegate = self

    }
    
    func fetchedToDos() -> [ToDo] {
        return toDosController.fetchedObjects as [ToDo]
    }
    
    func toDoAtIndexPath(indexPath: NSIndexPath) -> ToDo {
        let sectionInfo = sections[indexPath.section]
        return toDosController.objectAtIndexPath(NSIndexPath(forRow: indexPath.row, inSection: sectionInfo.fetchedIndex!)) as ToDo
    }
    
    func reloadData() {

import CoreData

class ToDoListController: NSFetchedResultsControllerDelegate {
    
    var delegate: NSFetchedResultsControllerDelegate?
    
