we need a JavaScript engine