public void loadH2Script(string scriptToLoad)
        {
            O2Thread.mtaThread(() =>
            {
                if (scriptToLoad.fileName().starts(this.typeName()))
                {
                    PublicDI.log.error("We can execute the current type of we will get a recursive load :)");
                    return;
                }
                currentScript = scriptToLoad;
                statusLabel.set_Text("loading script: {0}".format(scriptToLoad.fileName()));

                csharpCompiler = new CSharp_FastCompiler();

                csharpCompiler.set_OnAstFail(() =>
                {
                    showError("Ast creation failed", csharpCompiler.astErrors());
                    csharpCompiler_OnAstFail.invoke();
                });

                csharpCompiler.set_OnAstOK(() =>
                {
                    showInfo("Ast creation Ok");
                    csharpCompiler_OnAstOk.invoke();
                });

                csharpCompiler.set_OnCompileFail(() =>
                {
                    showError("Compilation failed", csharpCompiler.compilationErrors());
                    csharpCompiler_OnCompileFail.invoke();
                });

                csharpCompiler.set_OnCompileOK(() =>
                {
                    showInfo("Compilation Ok: Executing 1st method");
                    csharpCompiler_OnCompileOk.invoke();
                    executeCompiledCode();
                });

                var sourceCode         = "";
                PublicDI.CurrentScript = scriptToLoad;
                csharpCompiler.CompilerOptions.SourceCodeFile = scriptToLoad;
                if (scriptToLoad.extension(".h2"))
                {
                    sourceCode = H2.load(scriptToLoad).SourceCode;
                }
                if (scriptToLoad.extension(".o2") || scriptToLoad.extension(".cs"))
                {
                    sourceCode = scriptToLoad.contents();
                }
                if (sourceCode.valid())
                {
                    csharpCompiler.compileSnippet(sourceCode);
                }
                else
                {
                    statusLabel.set_Text("Non supported file").textColor(this, Color.Red);
                }
            });
        }