updated to use better timeout code using new eval(code, timeout: seconds) format