totally replaced environment and structs with dynamically re-ordering tries in place of parallel arrays; many optimizations can be done but for the moment it works 99% of the time; somehow I broke my closure-as-struct test, but I think it'll be a simple fix (I think I defaulted to the wrong type); all other unit tests are once again passing