switched to using non-eval code