refactoring InteractionContext