object SDK { // List of modules to be included in the Koin Container internal val koinModules: List by lazy { apiModule + interceptorModule + repoModule + appModule + keyStoreModule + fireflyModule + integrationModule } fun init(): SomeObject { val modules: List = koinModules + module { single { gspConfig } } localInstance = koinApplication { if (BuildConfig.DEBUG) AndroidLogger() else EmptyLogger() androidContext(context) modules(modules) } val someObject = SomeObject() localInstance.koin.declare(gspHandler) return someObject } } interface CustomKoinComponent : KoinComponent { override fun getKoin(): Koin = localInstance.koin }