complete multi-player implementation