move function call logic into env
make booleans/conditions first-class values (mostly a grammar change)