refactor Context, remove base class