Refactor conversation component