Can these be methods on Alignment - does that break the ADT model?  It's at least possible in Scala