@startuml "SVGCompositor"
class SVGCompositor
abstract Widget {
	- relative_pos
	- target_svg
	--
	+ update()
}
abstract WidgetContainer {
	--
	+ add()
	+ remove()
	+ getChild()
}
abstract WidgetAtom
class LineEnd

class Line

Widget <|-- WidgetAtom
Widget <|-- WidgetContainer
SVGCompositor "1" o-- "0..*" Line
WidgetContainer "1..*" o-- "1..*" Widget

WidgetContainer <|-- Rectangle

WidgetContainer <|-- SVGCompositor
WidgetAtom <|-- LineEnd
Line "1" o-- "2" LineEnd
@enduml
