diff --git a/base/Dockerfile b/base/Dockerfile
index 013900a..46c8ac3 100644
--- a/base/Dockerfile
+++ b/base/Dockerfile
@@ -52,6 +52,7 @@ RUN cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG \
     && while curl -s ldap://localhost:389 > /dev/null; do echo waiting for ldap to stop; sleep 1; done
 
 COPY container_files/conf/* /opt/grouper/grouperWebapp/WEB-INF/classes/
+COPY container_files/conf/grouperText/* /opt/grouper/grouperWebapp/WEB-INF/classes/grouperText/
 
 RUN (/usr/sbin/slapd -h "ldap:/// ldaps:/// ldapi:///" -u ldap &) \
     && while ! curl -s ldap://localhost:389 > /dev/null; do echo waiting for ldap to start; sleep 1; done; \
diff --git a/base/container_files/conf/grouper.properties b/base/container_files/conf/grouper.properties
index 42d5121..ae9c4e0 100644
--- a/base/container_files/conf/grouper.properties
+++ b/base/container_files/conf/grouper.properties
@@ -56,4 +56,15 @@ grouper.requireGroup.name.0 = ref:employee:fac_staff
 
 # grouper reporting file system path where reports will be stored, e.g. /opt/grouper/reports
 # {valueType: "string", required: false}
-reporting.file.system.path = /tmp
\ No newline at end of file
+reporting.file.system.path = /tmp
+
+
+# {valueType: "string", regex: "^grouper\\.membership\\.customComposite\\.uiKey\\.\\d+$"}
+grouper.membership.customComposite.uiKey.0 = customCompositeMinusActive
+
+# {valueType: "string", regex: "^grouper\\.membership\\.customComposite\\.compositeType\\.\\d+$"}
+grouper.membership.customComposite.compositeType.0 = complement
+
+# {valueType: "group", regex: "^grouper\\.membership\\.customComposite\\.groupName\\.\\d+$"}
+grouper.membership.customComposite.groupName.0 = ref:iam:active
+
diff --git a/ex401/ex401.1.1/container_files/grouperText/grouper.text.en.us.properties b/base/container_files/conf/grouperText/grouper.text.en.us.properties
similarity index 67%
rename from ex401/ex401.1.1/container_files/grouperText/grouper.text.en.us.properties
rename to base/container_files/conf/grouperText/grouper.text.en.us.properties
index ab8167a..182038c 100644
--- a/ex401/ex401.1.1/container_files/grouperText/grouper.text.en.us.properties
+++ b/base/container_files/conf/grouperText/grouper.text.en.us.properties
@@ -1,2 +1,3 @@
+customCompositeMinusActive = Entities who are not active at the institution
 customCompositeMinusFacStaff = Entities who are not faculty or staff
 customCompositeMinusFacStaffStudent = Entities who are not faculty, staff, or students
diff --git a/ex101/ex101.1.1/container_files/grouper-loader.properties b/ex101/ex101.1.1/container_files/grouper-loader.properties
index 8b937f5..3f70138 100644
--- a/ex101/ex101.1.1/container_files/grouper-loader.properties
+++ b/ex101/ex101.1.1/container_files/grouper-loader.properties
@@ -14,16 +14,16 @@
                                                                                                            
 # To run full provisioning synchronizations periodically, provide the class name which provides a 'public void fullSync()' method.
 #changeLog.psp.fullSync.class = edu.internet2.middleware.psp.grouper.PspChangeLogConsumer                 
-                                                                                                           
+
 # Schedule full synchronizations. Defaults to 5 am : 0 0 5 * * ?.                                          
 #changeLog.psp.fullSync.quartzCron = 0 0 5 * * ?
-                                                                                                           
+
 # Run a full synchronization job at startup. Defaults to false.                                            
 #changeLog.psp.fullSync.runAtStartup = false                                                              
-                                                                                                           
+
 # Omit diff responses from bulk response to conserve memory.                                               
 #changeLog.psp.fullSync.omitDiffResponses = true                                                          
-                                                                                                           
+
 # Omit sync responses from bulk response to conserve memory.                                               
 #changeLog.psp.fullSync.omitSyncResponses = true 
 
diff --git a/ex401/ex401.1.1/Dockerfile b/ex401/ex401.1.1/Dockerfile
index 6532666..0537395 100644
--- a/ex401/ex401.1.1/Dockerfile
+++ b/ex401/ex401.1.1/Dockerfile
@@ -15,7 +15,6 @@ COPY container_files/grouper.client.properties /opt/grouper/grouperWebapp/WEB-IN
 COPY container_files/subject.properties /opt/grouper/grouperWebapp/WEB-INF/classes
 COPY container_files/morphString.properties /opt/grouper/grouperWebapp/WEB-INF/classes
 COPY container_files/grouper.properties /opt/grouper/grouperWebapp/WEB-INF/classes
-COPY container_files/grouperText/grouper.text.en.us.properties /opt/grouper/grouperWebapp/WEB-INF/classes/grouperText/grouper.text.en.us.properties
 
 RUN . /usr/local/bin/library.sh \
     && prep_conf && prep_finish && setupFiles; \
diff --git a/ex401/ex401.1.1/container_files/grouper.properties b/ex401/ex401.1.1/container_files/grouper.properties
index 74768c5..0086766 100644
--- a/ex401/ex401.1.1/container_files/grouper.properties
+++ b/ex401/ex401.1.1/container_files/grouper.properties
@@ -61,21 +61,32 @@ reporting.file.system.path = /tmp
 
 
 # {valueType: "string", regex: "^grouper\\.membership\\.customComposite\\.uiKey\\.\\d+$"}
-grouper.membership.customComposite.uiKey.0 = customCompositeMinusFacStaff
+grouper.membership.customComposite.uiKey.0 = customCompositeMinusActive
 
 # {valueType: "string", regex: "^grouper\\.membership\\.customComposite\\.compositeType\\.\\d+$"}
 grouper.membership.customComposite.compositeType.0 = complement
 
 # {valueType: "group", regex: "^grouper\\.membership\\.customComposite\\.groupName\\.\\d+$"}
-grouper.membership.customComposite.groupName.0 = ref:employee:fac_staff
+grouper.membership.customComposite.groupName.0 = ref:iam:active
 
 
 
 # {valueType: "string", regex: "^grouper\\.membership\\.customComposite\\.uiKey\\.\\d+$"}
-grouper.membership.customComposite.uiKey.1 = customCompositeMinusFacStaffStudent
+grouper.membership.customComposite.uiKey.1 = customCompositeMinusFacStaff
 
 # {valueType: "string", regex: "^grouper\\.membership\\.customComposite\\.compositeType\\.\\d+$"}
 grouper.membership.customComposite.compositeType.1 = complement
 
 # {valueType: "group", regex: "^grouper\\.membership\\.customComposite\\.groupName\\.\\d+$"}
-grouper.membership.customComposite.groupName.1 = ref:fac_staff_student
+grouper.membership.customComposite.groupName.1 = ref:employee:fac_staff
+
+
+
+# {valueType: "string", regex: "^grouper\\.membership\\.customComposite\\.uiKey\\.\\d+$"}
+grouper.membership.customComposite.uiKey.2 = customCompositeMinusFacStaffStudent
+
+# {valueType: "string", regex: "^grouper\\.membership\\.customComposite\\.compositeType\\.\\d+$"}
+grouper.membership.customComposite.compositeType.2 = complement
+
+# {valueType: "group", regex: "^grouper\\.membership\\.customComposite\\.groupName\\.\\d+$"}
+grouper.membership.customComposite.groupName.2 = ref:fac_staff_student