this bit could get pulled out into something like `self.set_context_for_level()`