[WIP] make ASTs cachable

change `watchGroup.context` to `context`