more pricinpled approach to environment speculation

use the env_structure as a guide. closes #42