private chat initial implementation
chat working with some code duplication