refactor conversation