I think you need to use a Kodein instance for each "component" or you could use scopes @Donovan Fournier, depending on the need. Scopes are for singleton/multiton instantiation according to the current scope's lifecycle. Whereas seperate Kodein instances will just have what you put in them of any type (unless you use the COPY feature in extend...)