public void Interpret(Stream stream, string argument = null) { if (isRunning) { throw new Exception("Cannot interpret a new protocol while a protocol is running"); } else if (isReady) { Reset(); //then fall through } isReady = true; Data = InterpreterManager.GenerateData(stream, argument); }