Refactor the Environment object

Trying to get a real object to interact with here so I can do things like adding dependencies and such.