implement conversation log

rebased version