refactored compile context to allow for block scoping of variables. simple examples compile properly. need to add tests for more complex scenarios