Refactor specification a bit to cleanup implementation.

The more you learn about a language the more you want to cleanup your
old code!
Modify environment to properly construct.