public override object Invoke (string name, params object [] args)
{
// this should likely call an Invoke overload passing ManagedObject in, instead of "this",
// but we already do the book keeping in the base class, so do we need this method at all?
Value v = new Value ();
base.Invoke (name, args, ref v);
return ScriptObjectHelper.ObjectFromValue<object> (v);
}