the eval module is now using a result-based API... still has some unwinding