This is not really improving the way we do interpolation so much as its just shuffling bits around. I don't want to refactor interpolation in this branch so I needed to make the current way reusable so that I can reuse it in the new Context.