Shorter element class names.
Label and Content.
Sorted out return type hints.
Split up templates. Template for first matching parent is used if nothing is registered for type.