Make Marked a static member of MarkedConstructor

This is marginally nicer.
Refactorings + docstrings.