prevent caching entire module
unify error reporting
handle builtins