moved factory to its own service module di into app module layer