scoping and macros plus a few builtins