Further changes to EnvironmentVariable base class and subclasses. The previous 3 commits were also related to this, forgot to change the commit message. More refinements and comments coming soon.