Refactored to use a multi-threaded, caller-callee design.  The player now calls the byte operator, which calls back the original caller when it has completed.