refactor DefaultContext