Transitions!

Implementation, docs, tests.