is it any better then to create a ExecContext in the function and to use `MCExecContext::CopyElementAs*` instead of `MCArrayFetchValue` to ensure the conversion worked?