private List <EntityStorage> InitTypes()
        {
            List <EntityStorage> output = new List <EntityStorage>();

            foreach (var storage in _generatorManager.GetRequiredResources().OfType <EntityStorage>())
            {
                var modeledStorage = _generatorManager.GetGenerable()
                                     .Files.OfType <Modelable>()
                                     .FirstOrDefault(x => x.Key.Equals(storage.Name));
                var adapter = new StorageInterfaceAdapter(GetInstanceFromGenerator(modeledStorage));
                _storages.Add(adapter, new Dictionary <EntitySet, EntityFactory>());
                foreach (var entitySet in storage.EntitySets)
                {
                    var entity        = _prototype.Entities.Single(x => x.Name == entitySet.EntityName);
                    var modeledEntity = _generatorManager.GetGenerable()
                                        .Files.OfType <Modelable>()
                                        .FirstOrDefault(x => x.Key.Equals(entity.Name));
                    _storages[adapter].Add(entitySet, new EntityFactory(
                                               entity,
                                               GetTypeFromGenerator(modeledEntity),
                                               entitySet,
                                               storage,
                                               Utils.FindAllInstances <LoadEntitiesFromEntityStorage>(_prototype).Where(x => x.EntitySetName == entitySet.Name && x.EntityStorageName == storage.Name && x.EntityName == entity.Name).ToList()));
                    output.Add(storage);
                }
            }

            return(output);
        }