initial chat implementation