refactor context usage