added Environment class