Refactored out desktop env class to being supporting more then one os/desktop man