a first draft of support for commutative diagrams