Reimplement working chat