      *
      * :returns: An array containing all the managed objects for the given entity name.
      */
-    public func findAllForEntityWithEntityName(entityName: String, error: NSErrorPointer) -> [NSManagedObject] {
-        let results = executeFetchRequest(NSFetchRequest(entityName: entityName), error: error) as? [NSManagedObject]
+    public func findAllForEntityWithEntityName(entityName: String, error: NSErrorPointer) -> [AnyObject] {
+        let results = executeFetchRequest(NSFetchRequest(entityName: entityName), error: error)
         
-        return results != nil ? results! : [NSManagedObject]()
+        return results != nil ? results! : [AnyObject]()
     }
     
     /**

     * :param: entityName The entity name of for the managed object to find.
     * :param: insertion Insertion closure to allow the setting up of the newly created object. nil if the creation was unsuccessful.
     */
    public func insertObjectWithEntityName(entityName: String, insertion: ((object: NSManagedObject) -> Void)?) {
        let newObject = NSEntityDescription.insertNewObjectForEntityForName(entityName, inManagedObjectContext: self) as NSManagedObject
        
        insertion?(object: newObject)
    }

     *
     * :returns: An array with the found managed objects which match the given predicate.
     */
    public func findEntitiesForEntityName(entityName: String, withPredicate predicate: NSPredicate?, error: NSErrorPointer) -> [AnyObject] {
        return findEntitiesForEntityName(entityName,
            withPredicate: predicate,
            andSortDescriptors: nil,
