             
             plugin.startup(self)
             startedPlugins.append(plugin)
+            let lowercasedIdentifier = plugin.identifier.lowercased()
+            guard startedPluginsLookup[lowercasedIdentifier] == nil else {
+                assertionFailure("tried to started more than one plugin with id \(plugin.identifier)!")
+                return
+            }
+            startedPluginsLookup[plugin.identifier.lowercased()] = plugin
             print("started: \(plugin.identifier)")
         }
     }


@objc open class Supervisor: UIResponder {
    public private(set) var startedPlugins = [Pluggable]()
    public var navigator: SupervisorNavigator?
    
    private var proposedPlugins = [Pluggable]()

    }
    
    private func plugin(forIdentifier id: DependencyID) -> Pluggable? {
        return startedPluginsLookup[id.lowercased()]
    }
    
    private func start(plugin: Pluggable) {
