second draft. Entirely distributed using peer JS