massive refactoring of TogetherJS support, MASSIVE!!!