First draft of change contexts

For review by @marchant or @spearway. I will probably merge this myself and further amendments can follow.