Make use of overloading for Instruction
Optics for exceptions
Lenses for Doctype
Overload name