Get rid of unnecessary lazy initializers for all managedObjectContext, managedObjectModel, and persistentStoreCoordinator. Instead, set them all at once in private initializer for GTDataManager. If you're requesting a GTDataManager, most likely you're going to need one of the 3 properties contained within it.