basic protocol change for allowing more than one thread, should implement the handshake-like system before allowing it to multi-thread