follow context refactoring