Add environment, can have parent environments, partially fulfills #5