diff --git a/comps-el4.xml.in b/comps-el4.xml.in
index 4b3fcb9..e8f7c35 100644
--- a/comps-el4.xml.in
+++ b/comps-el4.xml.in
@@ -78,18 +78,6 @@
     <packagelist/>
   </group>
   <group>
-    <id>editors</id>
-    <_name>Editors</_name>
-    <_description>Sometimes called text editors, these are programs that allow you to create and edit files. These include Emacs and Vi.</_description>
-    <default>false</default>
-    <uservisible>true</uservisible>
-    <grouplist>
-      <groupreq>base</groupreq>
-      <metapkg type="optional">xemacs</metapkg>
-    </grouplist>
-    <packagelist/>
-  </group>
-  <group>
     <id>education</id>
     <_name>Educational Software</_name>
     <_description>Educational software for learning</_description>
diff --git a/comps-el5.xml.in b/comps-el5.xml.in
index 7696353..08d9dea 100644
--- a/comps-el5.xml.in
+++ b/comps-el5.xml.in
@@ -133,18 +133,6 @@
     <packagelist/>
   </group>
   <group>
-    <id>editors</id>
-    <_name>Editors</_name>
-    <_description>Sometimes called text editors, these are programs that allow you to create and edit files. These include Emacs and Vi.</_description>
-    <default>false</default>
-    <uservisible>true</uservisible>
-    <grouplist>
-      <groupreq>base</groupreq>
-      <metapkg type="optional">xemacs</metapkg>
-    </grouplist>
-    <packagelist/>
-  </group>
-  <group>
     <id>education</id>
     <_name>Educational Software</_name>
     <_description>Educational software for learning</_description>
diff --git a/comps-epel7.xml.in b/comps-epel7.xml.in
index e3209b2..cbba019 100644
--- a/comps-epel7.xml.in
+++ b/comps-epel7.xml.in
@@ -1,30 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
 <comps>
-  <environment>
-    <id>mate-desktop-environment</id>
-    <_name>MATE Desktop</_name>
-    <_description>MATE Desktop is based on GNOME 2 and provides a powerful graphical user interface for users who seek a simple easy to use traditional desktop interface.</_description>
-    <display_order>22</display_order>
-    <grouplist>
-      <groupid>base-x</groupid>
-      <groupid>standard</groupid>
-      <groupid>core</groupid>
-      <groupid>admin-tools</groupid>
-      <groupid>dial-up</groupid>
-      <groupid>fonts</groupid>
-      <groupid>input-methods</groupid>
-      <groupid>multimedia</groupid>
-      <groupid>hardware-support</groupid>
-      <groupid>printing</groupid>
-      <groupid>guest-desktop-agents</groupid>
-      <groupid>mate-desktop</groupid>
-    </grouplist>
-    <optionlist>
-      <groupid>libreoffice</groupid>
-      <groupid>3d-printing</groupid>
-    </optionlist>
-  </environment>
   <group>
     <id>additional-devel</id>
     <_name>Additional Development</_name>
@@ -2267,6 +2243,30 @@
     <langonly>zu</langonly>
     <packagelist/>
   </group>
+  <environment>
+    <id>mate-desktop-environment</id>
+    <_name>MATE Desktop</_name>
+    <_description>MATE Desktop is based on GNOME 2 and provides a powerful graphical user interface for users who seek a simple easy to use traditional desktop interface.</_description>
+    <display_order>22</display_order>
+    <grouplist>
+      <groupid>base-x</groupid>
+      <groupid>standard</groupid>
+      <groupid>core</groupid>
+      <groupid>admin-tools</groupid>
+      <groupid>dial-up</groupid>
+      <groupid>fonts</groupid>
+      <groupid>input-methods</groupid>
+      <groupid>multimedia</groupid>
+      <groupid>hardware-support</groupid>
+      <groupid>printing</groupid>
+      <groupid>guest-desktop-agents</groupid>
+      <groupid>mate-desktop</groupid>
+    </grouplist>
+    <optionlist>
+      <groupid>libreoffice</groupid>
+      <groupid>3d-printing</groupid>
+    </optionlist>
+  </environment>
   <category>
     <id>desktops</id>
     <display_order>70</display_order>
diff --git a/comps-f18.xml.in b/comps-f18.xml.in
index 1043244..c80f0ed 100644
--- a/comps-f18.xml.in
+++ b/comps-f18.xml.in
@@ -211,6 +211,8 @@
     <id>libreoffice</id>
     <_name>LibreOffice</_name>
     <_description>LibreOffice Productivity Suite</_description>
+    <default>false</default>
+    <uservisible>true</uservisible>
     <packagelist>
       <packagereq>libreoffice-calc</packagereq>
       <packagereq>libreoffice-draw</packagereq>
@@ -6341,7 +6343,6 @@
     <display_order>90</display_order>
     <grouplist>
       <groupid>cloud-infrastructure</groupid>
-      <groupid>clustering</groupid>
       <groupid>directory-server</groupid>
       <groupid>dns-server</groupid>
       <groupid>dogtag</groupid>
diff --git a/comps-f19.xml.in b/comps-f19.xml.in
index 30ee415..508d036 100644
--- a/comps-f19.xml.in
+++ b/comps-f19.xml.in
@@ -209,6 +209,8 @@
     <id>libreoffice</id>
     <_name>LibreOffice</_name>
     <_description>LibreOffice Productivity Suite</_description>
+    <default>false</default>
+    <uservisible>true</uservisible>
     <packagelist>
       <packagereq>libreoffice-calc</packagereq>
       <packagereq>libreoffice-draw</packagereq>
@@ -6133,7 +6135,7 @@
     </packagelist>
   </group>
   <group>
-    <id>3d-printing</id>
+    <id>three-d-printing</id>
     <_name>3D Printing</_name>
     <_description>3D printing software</_description>
     <default>false</default>
@@ -6175,7 +6177,7 @@
       <groupid default="true">libreoffice</groupid>
       <groupid>gnome-games</groupid>
       <groupid>epiphany</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6203,7 +6205,7 @@
       <groupid>kde-media</groupid>
       <groupid>kde-office</groupid>
       <groupid>kde-telepathy</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6230,7 +6232,7 @@
       <groupid default="true">xfce-media</groupid>
       <groupid>xfce-extra-plugins</groupid>
       <groupid>xfce-office</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6256,7 +6258,7 @@
       <groupid>lxde-apps</groupid>
       <groupid>lxde-media</groupid>
       <groupid>lxde-office</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6279,7 +6281,7 @@
     </grouplist>
     <optionlist>
       <groupid>libreoffice</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6303,7 +6305,7 @@
     <optionlist>
       <groupid>mate-compiz</groupid>
       <groupid>libreoffice</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6376,7 +6378,7 @@
       <groupid>ocaml</groupid>
       <groupid>robotics-suite</groupid>
       <groupid>electronic-lab</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6629,7 +6631,6 @@
     <display_order>90</display_order>
     <grouplist>
       <groupid>cloud-infrastructure</groupid>
-      <groupid>clustering</groupid>
       <groupid>directory-server</groupid>
       <groupid>dns-server</groupid>
       <groupid>dogtag</groupid>
diff --git a/comps-f20.xml.in b/comps-f20.xml.in
index ca7c15c..f4e1891 100644
--- a/comps-f20.xml.in
+++ b/comps-f20.xml.in
@@ -215,6 +215,8 @@
     <id>libreoffice</id>
     <_name>LibreOffice</_name>
     <_description>LibreOffice Productivity Suite</_description>
+    <default>false</default>
+    <uservisible>true</uservisible>
     <packagelist>
       <packagereq>libreoffice-calc</packagereq>
       <packagereq>libreoffice-draw</packagereq>
@@ -6204,7 +6206,7 @@
     </packagelist>
   </group>
   <group>
-    <id>3d-printing</id>
+    <id>three-d-printing</id>
     <_name>3D Printing</_name>
     <_description>3D printing software</_description>
     <default>false</default>
@@ -6246,7 +6248,7 @@
       <groupid default="true">libreoffice</groupid>
       <groupid>gnome-games</groupid>
       <groupid>epiphany</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6274,7 +6276,7 @@
       <groupid>kde-media</groupid>
       <groupid>kde-office</groupid>
       <groupid>kde-telepathy</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6301,7 +6303,7 @@
       <groupid default="true">xfce-media</groupid>
       <groupid>xfce-extra-plugins</groupid>
       <groupid>xfce-office</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6327,7 +6329,7 @@
       <groupid>lxde-apps</groupid>
       <groupid>lxde-media</groupid>
       <groupid>lxde-office</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6350,7 +6352,7 @@
     </grouplist>
     <optionlist>
       <groupid>libreoffice</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6376,7 +6378,7 @@
       <groupid>mate-applications</groupid>
       <groupid>mate-compiz</groupid>
       <groupid>libreoffice</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6449,7 +6451,7 @@
       <groupid>ocaml</groupid>
       <groupid>robotics-suite</groupid>
       <groupid>electronic-lab</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6704,7 +6706,6 @@
     <display_order>90</display_order>
     <grouplist>
       <groupid>cloud-infrastructure</groupid>
-      <groupid>clustering</groupid>
       <groupid>directory-server</groupid>
       <groupid>dns-server</groupid>
       <groupid>dogtag</groupid>
diff --git a/comps-f21.xml.in b/comps-f21.xml.in
index 3430c30..c70e0ea 100644
--- a/comps-f21.xml.in
+++ b/comps-f21.xml.in
@@ -221,6 +221,8 @@
     <id>libreoffice</id>
     <_name>LibreOffice</_name>
     <_description>LibreOffice Productivity Suite</_description>
+    <default>false</default>
+    <uservisible>true</uservisible>
     <packagelist>
       <packagereq>libreoffice-calc</packagereq>
       <packagereq>libreoffice-draw</packagereq>
@@ -6288,7 +6290,7 @@
     </packagelist>
   </group>
   <group>
-    <id>3d-printing</id>
+    <id>three-d-printing</id>
     <_name>3D Printing</_name>
     <_description>3D printing software</_description>
     <default>false</default>
@@ -6331,7 +6333,7 @@
       <groupid default="true">libreoffice</groupid>
       <groupid>gnome-games</groupid>
       <groupid>epiphany</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6360,7 +6362,7 @@
       <groupid>kde-media</groupid>
       <groupid>kde-office</groupid>
       <groupid>kde-telepathy</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6388,7 +6390,7 @@
       <groupid default="true">xfce-media</groupid>
       <groupid>xfce-extra-plugins</groupid>
       <groupid>xfce-office</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6415,7 +6417,7 @@
       <groupid>lxde-apps</groupid>
       <groupid>lxde-media</groupid>
       <groupid>lxde-office</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6439,7 +6441,7 @@
     </grouplist>
     <optionlist>
       <groupid>libreoffice</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6466,7 +6468,7 @@
       <groupid>mate-applications</groupid>
       <groupid>mate-compiz</groupid>
       <groupid>libreoffice</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6542,7 +6544,7 @@
       <groupid>ocaml</groupid>
       <groupid>robotics-suite</groupid>
       <groupid>electronic-lab</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6802,7 +6804,6 @@
     <display_order>90</display_order>
     <grouplist>
       <groupid>cloud-infrastructure</groupid>
-      <groupid>clustering</groupid>
       <groupid>directory-server</groupid>
       <groupid>dns-server</groupid>
       <groupid>dogtag</groupid>
diff --git a/comps-f22.xml.in b/comps-f22.xml.in
index 3430c30..c70e0ea 100644
--- a/comps-f22.xml.in
+++ b/comps-f22.xml.in
@@ -221,6 +221,8 @@
     <id>libreoffice</id>
     <_name>LibreOffice</_name>
     <_description>LibreOffice Productivity Suite</_description>
+    <default>false</default>
+    <uservisible>true</uservisible>
     <packagelist>
       <packagereq>libreoffice-calc</packagereq>
       <packagereq>libreoffice-draw</packagereq>
@@ -6288,7 +6290,7 @@
     </packagelist>
   </group>
   <group>
-    <id>3d-printing</id>
+    <id>three-d-printing</id>
     <_name>3D Printing</_name>
     <_description>3D printing software</_description>
     <default>false</default>
@@ -6331,7 +6333,7 @@
       <groupid default="true">libreoffice</groupid>
       <groupid>gnome-games</groupid>
       <groupid>epiphany</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6360,7 +6362,7 @@
       <groupid>kde-media</groupid>
       <groupid>kde-office</groupid>
       <groupid>kde-telepathy</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6388,7 +6390,7 @@
       <groupid default="true">xfce-media</groupid>
       <groupid>xfce-extra-plugins</groupid>
       <groupid>xfce-office</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6415,7 +6417,7 @@
       <groupid>lxde-apps</groupid>
       <groupid>lxde-media</groupid>
       <groupid>lxde-office</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6439,7 +6441,7 @@
     </grouplist>
     <optionlist>
       <groupid>libreoffice</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6466,7 +6468,7 @@
       <groupid>mate-applications</groupid>
       <groupid>mate-compiz</groupid>
       <groupid>libreoffice</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6542,7 +6544,7 @@
       <groupid>ocaml</groupid>
       <groupid>robotics-suite</groupid>
       <groupid>electronic-lab</groupid>
-      <groupid>3d-printing</groupid>
+      <groupid>three-d-printing</groupid>
     </optionlist>
   </environment>
   <environment>
@@ -6802,7 +6804,6 @@
     <display_order>90</display_order>
     <grouplist>
       <groupid>cloud-infrastructure</groupid>
-      <groupid>clustering</groupid>
       <groupid>directory-server</groupid>
       <groupid>dns-server</groupid>
       <groupid>dogtag</groupid>
diff --git a/comps.rng b/comps.rng
index ba92426..ed0138f 100644
--- a/comps.rng
+++ b/comps.rng
@@ -97,13 +97,15 @@
   <define name="packagereq">
     <element name="packagereq">
       <choice>
-        <attribute name="type" a:defaultValue="optional">
-          <choice>
-            <value>mandatory</value>
-            <value>default</value>
-            <value>optional</value>
-          </choice>
-        </attribute>
+        <optional>
+          <attribute name="type" a:defaultValue="optional">
+            <choice>
+              <value>mandatory</value>
+              <value>default</value>
+              <value>optional</value>
+            </choice>
+          </attribute>
+        </optional>
         <group>
           <attribute name="type" a:defaultValue="conditional">
             <choice>
@@ -120,6 +122,16 @@
           <ref name="boolean"/>
         </attribute>
       </optional>
+      <optional>
+        <attribute name="arch">
+          <ref name="string"/>
+          <a:documentation>
+            Exclusive arch for this package.
+            <!-- Technically this should be an enum of known arches:
+            i386 x86_64 ppc ppc64 ia64 sparc alpha ... -->
+          </a:documentation>
+        </attribute>
+      </optional>
       <ref name="packagename"/>
     </element>
   </define>
@@ -169,6 +181,11 @@
   <define name="groupid">
     <element name="groupid">
       <ref name="string"/>
+      <optional>
+        <attribute name="default" a:defaultValue="false">
+          <ref name="boolean"/>
+        </attribute>
+      </optional>
     </element>
   </define>
   <define name="id">
