Refactored ConversationService.

That was really bad code. Still is, but less. Needs tests.