Refactored to pass around a GVContext instead of a NSManagedObjectContext