re-do all recent changes to language module
update tests for new anon function syntax