It's unclear whether conversation() and start() need to be called in a particular order.  If they do, at the very least doxygen comments for both of these functions describing their semantics would be nice.  Even better would be a test and code so that an exception is thrown if they're called out of order.