starting a total rewrite of the chat library