removed clunky 'list' syntax from tests; added higher-order function test
refactored closure definition
added let, eval-with-env, and a bunch of other stuff