Refactor interaction