implement chat feature