Use new Function rather than eval