moved a bunch of stuff, made player code output async with primary execution thread