trying to rewrite
working demo
implemented broadcast and rooms