Bugfix: new environment is created each time eval is called without environment.
Environment has get, set, contains and update methods to abstract implementation details.