[WIP] make ASTs cachable

Done