Pulled implementation details up to AbstractConversation.