symbol/state refactor
builtins take fn
despaghetti macros