@startuml

[API]
[Bootstrap]

frame "Module Manager" {
	[Registry<ClassName, Module>] as [Registry]
	[Module 1]
	[Module 2]
	[Module 3]
}

'[API] <- [Registry]
[API] <-[hidden]- [Bootstrap]
[Bootstrap] <-[hidden] [Module 1]
[Module 1] <-[hidden] [Module 2]
[Module 2] <-[hidden] [Module 3]

[API] <-- [Module 1]
[API] <- [Module 2]
[API] <- [Module 3]

[Registry] <.. [Module 1]
[Registry] <.. [Module 2]
[Registry] <.. [Module 3]

@enduml