public override BlockReturn Run(BlockReturn param)
        {
            if (graph == null)
            {
                if (graphString != null)
                {
                    string s = graphString.RunAndGetString();
                    if (string.IsNullOrEmpty(s))
                    {
                        Log(LogType.Error, "Graph name/ ident is not set.");
                        return BlockReturn.Error;
                    }

                    if (identType == DiaQIdentType.CutomIdent) graph = DiaQEngine.Instance.graphManager.GetGraphByIdent(s);
                    else graph = DiaQEngine.Instance.graphManager.GetGraphByName(s);

                    if (graph == null)
                    {
                        Log(LogType.Error, string.Format("Graph with {0} = {1} could not be found.", identType, s));
                        return BlockReturn.Error;
                    }
                }
                else
                {
                    if (id == null) id = new UniqueID(graphId.id);
                    graph = DiaQEngine.Instance.graphManager.GetGraph(id);
                    if (graph == null)
                    {
                        Log(LogType.Error, "Could not find the specified Graph. You might have removed it without updating the Block.");
                        return BlockReturn.Error;
                    }
                }
            }

            DiaQEngine.Instance.graphManager.BeginGraph(graph);

            if (!cacheTarget) graph = null;
            return BlockReturn.OK;
        }
    // =================================================================================
    protected void Start()
    {
        // find the quest and cache a reference to it so I do not have to look it up
        // each time I want to work with it. Will simply search by its name but there
        // are methods too.
        quest = DiaQEngine.Instance.questManager.GetQuestByName("Sample Quest");

        // will also cache the graph. A graph is the conversation flow of the
        // quest giver's dialogue
        conversation = DiaQEngine.Instance.graphManager.GetGraphByName("Sample Graph");
    }