Whitespace
Make both the 'to_environment' method and 'with_existing_environment' method as similar as possible so that we can better see the duplication
Pull common environment functionality into a with_environment method and yield to do the processing which is different
Extracing multiple blocks out of the environment methods