Context change

This consists of the first two commits from #1269, rebased and slightly modified.
Actually, I don't think we ever required it, and just exported to null (which is a valid HashMap key in dart), and that is all sorts of terrible!

Expanded the comment.