DLP IronPython; passando parâmetros para código compilado?

Atualmente, estou fazendo o seguinte para criar e executar um cálculo python simples, usando DLR:

ScriptRuntime runtime = Python.CreateRuntime();
ScriptEngine engine = runtime.GetEngine("py");

MemoryStream ms = new MemoryStream();
runtime.IO.SetOutput(ms, new StreamWriter(ms));

ScriptSource ss = engine.CreateScriptSourceFromString("print 1+1", SourceCodeKind.InteractiveCode);

CompiledCode cc = ss.Compile();
cc.Execute();

int length = (int)ms.Length;
Byte[] bytes = new Byte[length];
ms.Seek(0, SeekOrigin.Begin);
ms.Read(bytes, 0, (int)ms.Length);
string result = Encoding.GetEncoding("utf-8").GetString(bytes, 0, (int)ms.Length);

Console.WriteLine(result);

Que imprime '2' no console, mas;

Desejo obter o resultado de 1 + 1 sem precisar imprimi-lo (pois isso parece ser uma operação cara). Qualquer coisa que eu atribuir ao resultado de cc.Execute () é nula. Existe alguma outra maneira de obter as variáveis resultantes de Execute ()?

Também estou tentando encontrar uma maneira de passar parâmetros, ou seja, para que o resultado seja arg1 + arg2 e não tenha idéia de como fazer isso; a única outra sobrecarga para Execute usa o ScriptScope como parâmetro e nunca usei python antes. Alguém pode ajudar?

[Editar] A resposta para ambas as perguntas: (Desco aceitou como me indicou a direção certa)

ScriptEngine py = Python.CreateEngine();
ScriptScope pys = py.CreateScope();

ScriptSource src = py.CreateScriptSourceFromString("a+b");
CompiledCode compiled = src.Compile();

pys.SetVariable("a", 1);
pys.SetVariable("b", 1);
var result = compiled.Execute(pys);

Console.WriteLine(result);

questionAnswers(2)

yourAnswerToTheQuestion