diff --git a/Jenkinsfile b/Jenkinsfile
index ef55f92..5aa7067 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -61,7 +61,7 @@ pipeline {
                         sh '(cd demo/simple ; bats tests ) 2>&1 | tee -a debug ; test ${PIPESTATUS[0]} -eq 0'
                         sh '(cd demo/shibboleth ; bats tests ) 2>&1 | tee -a debug ; test ${PIPESTATUS[0]} -eq 0'
                         sh '(cd demo/postgresql ; bats tests ) 2>&1 | tee -a debug ; test ${PIPESTATUS[0]} -eq 0'
-                        //sh '(cd demo/complex ; bats tests ) 2>&1 | tee -a debug ; test ${PIPESTATUS[0]} -eq 0'
+                        sh '(cd demo/grouper ; bats tests ) 2>&1 | tee -a debug ; test ${PIPESTATUS[0]} -eq 0'
                     } catch (error) {
                         def error_details = readFile('./debug')
                         def message = "BUILD ERROR: There was a problem testing ${imagename}:${tag}. \n\n ${error_details}"
diff --git a/demo/grouper/midpoint-objects/objectTemplates/template-user.xml b/demo/grouper/midpoint-objects/objectTemplates/template-user.xml
index 9442803..8d8c362 100644
--- a/demo/grouper/midpoint-objects/objectTemplates/template-user.xml
+++ b/demo/grouper/midpoint-objects/objectTemplates/template-user.xml
@@ -7,7 +7,7 @@
   -->
 
 <objectTemplate xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3" xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3" oid="8098b124-c20c-4965-8adf-e528abedf7a4">
-    <name>User Template</name>
+    <name>template-user</name>
     <mapping>
         <strength>strong</strength>
         <source>
diff --git a/demo/grouper/tests/main.bats b/demo/grouper/tests/main.bats
index 4a781f7..deb6db7 100644
--- a/demo/grouper/tests/main.bats
+++ b/demo/grouper/tests/main.bats
@@ -13,8 +13,8 @@ load ../../../library
 @test "010 Initialize and start the composition" {
     # We want to fail cleanly if there's any interference
     docker ps
-    ! (docker ps | grep -E "shibboleth_(idp|directory)_1|(complex|simple|shibboleth|postgresql)_(midpoint_server|midpoint_data)_1")
-    docker-compose build --pull grouper_daemon grouper_ui grouper_data directory sources targets midpoint_data idp mq
+    ! (docker ps | grep -E "shibboleth_(idp|directory)_1|(grouper|simple|shibboleth|postgresql)_(midpoint_server|midpoint_data)_1")
+    docker-compose build --pull grouper_daemon grouper_ui grouper_data directory sources midpoint_data idp mq
     # Sometimes the tier/midpoint:xyz is not yet in the repository, causing issues with --pull
     docker-compose build midpoint_server
     docker-compose up -d
@@ -22,9 +22,9 @@ load ../../../library
 
 @test "020 Wait until components are started" {
     touch $BATS_TMPDIR/not-started
-    wait_for_midpoint_start complex_midpoint_server_1 complex_midpoint_data_1
-    wait_for_shibboleth_idp_start complex_idp_1
-    wait_for_grouper_ui_start complex_grouper_ui_1
+    wait_for_midpoint_start grouper_midpoint_server_1 grouper_midpoint_data_1
+    wait_for_shibboleth_idp_start grouper_idp_1
+    wait_for_grouper_ui_start grouper_grouper_ui_1
     rm $BATS_TMPDIR/not-started
 }
 
@@ -63,39 +63,46 @@ load ../../../library
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
     # reduce data in SIS database so imports will take reasonable time
-    docker exec complex_sources_1 mysql sis -u root -p123321 -e "delete from SIS_COURSES where uid not in ('amorrison', 'banderson', 'cmorrison', 'danderson', 'ddavis', 'jsmith', 'kwhite', 'mroberts', 'whenderson', 'wprice')"
-    docker exec complex_sources_1 mysql sis -u root -p123321 -e "delete from SIS_AFFILIATIONS where uid not in ('amorrison', 'banderson', 'cmorrison', 'danderson', 'ddavis', 'jsmith', 'kwhite', 'mroberts', 'whenderson', 'wprice')"
-    docker exec complex_sources_1 mysql sis -u root -p123321 -e "delete from SIS_PERSONS where uid not in ('amorrison', 'banderson', 'cmorrison', 'danderson', 'ddavis', 'jsmith', 'kwhite', 'mroberts', 'whenderson', 'wprice')"
+    docker exec grouper_sources_1 mysql sis -u root -p123321 -e "delete from SIS_COURSES where uid not in ('amorrison', 'banderson', 'cmorrison', 'danderson', 'ddavis', 'jsmith', 'kwhite', 'mroberts', 'whenderson', 'wprice')"
+    docker exec grouper_sources_1 mysql sis -u root -p123321 -e "delete from SIS_AFFILIATIONS where uid not in ('amorrison', 'banderson', 'cmorrison', 'danderson', 'ddavis', 'jsmith', 'kwhite', 'mroberts', 'whenderson', 'wprice')"
+    docker exec grouper_sources_1 mysql sis -u root -p123321 -e "delete from SIS_PERSONS where uid not in ('amorrison', 'banderson', 'cmorrison', 'danderson', 'ddavis', 'jsmith', 'kwhite', 'mroberts', 'whenderson', 'wprice')"
 
     check_health
     ./upload-objects.sh
 
-    search_and_check_object objectTemplates template-org-course
-    search_and_check_object objectTemplates template-org-department
-    search_and_check_object objectTemplates template-role-affiliation
-    search_and_check_object objectTemplates template-role-generic-group
+    search_and_check_object objectTemplates template-user
+
+    search_and_check_object archetypes affiliation
+    search_and_check_object archetypes course
+    search_and_check_object archetypes department
     
+    search_and_check_object orgs affiliations
     search_and_check_object orgs courses
     search_and_check_object orgs departments
 
     search_and_check_object resources "LDAP (directory)"
     search_and_check_object resources "Grouper Resource"
-    search_and_check_object resources "SQL SIS courses (sources)"
     search_and_check_object resources "SQL SIS persons (sources)"
 
-    search_and_check_object roles metarole-affiliation
-    search_and_check_object roles metarole-course
-    search_and_check_object roles metarole-department 
-    search_and_check_object roles metarole-generic-group
-    search_and_check_object roles role-grouper-sysadmin
+    search_and_check_object roles metarole-grouper-provided-group
+    search_and_check_object roles metarole-ldap-group
     search_and_check_object roles role-ldap-basic
 }
 
-@test "210 Test LDAP and SQL resources" {
+@test "210 Test resources" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
     test_resource 0a37121f-d515-4a23-9b6d-554c5ef61272
-    test_resource 13660d60-071b-4596-9aa1-5efcd1256c04
     test_resource 4d70a0da-02dd-41cf-b0a1-00e75d3eaa15
+    test_resource a343fc2e-3954-4034-ba1a-2b72c21e577a
+    test_resource e417225d-8a08-46f3-9b5d-624990b52386
+    test_resource fe805d13-481b-43ec-97d8-9d2df72cd38e
+    test_resource 1eff65de-5bb6-483d-9edf-8cc2c2ee0233
+}
+
+@test "215 Recompute banderson and sysadmingroup" {
+    if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
+
+    ./recompute.sh
 }
 
 @test "220 Import SIS_PERSONS" {
@@ -117,121 +124,54 @@ load ../../../library
     search_and_check_object users wprice
     search_and_check_object users mroberts
 
-    check_ldap_account_by_user_name jsmith complex_directory_1
-    check_ldap_account_by_user_name banderson complex_directory_1
-    check_ldap_account_by_user_name kwhite complex_directory_1
-    check_ldap_account_by_user_name whenderson complex_directory_1
-    check_ldap_account_by_user_name ddavis complex_directory_1
-    check_ldap_account_by_user_name cmorrison complex_directory_1
-    check_ldap_account_by_user_name danderson complex_directory_1
-    check_ldap_account_by_user_name amorrison complex_directory_1
-    check_ldap_account_by_user_name wprice complex_directory_1
-    check_ldap_account_by_user_name mroberts complex_directory_1
+    check_ldap_account_by_user_name jsmith grouper_directory_1
+    check_ldap_account_by_user_name banderson grouper_directory_1
+    check_ldap_account_by_user_name kwhite grouper_directory_1
+    check_ldap_account_by_user_name whenderson grouper_directory_1
+    check_ldap_account_by_user_name ddavis grouper_directory_1
+    check_ldap_account_by_user_name cmorrison grouper_directory_1
+    check_ldap_account_by_user_name danderson grouper_directory_1
+    check_ldap_account_by_user_name amorrison grouper_directory_1
+    check_ldap_account_by_user_name wprice grouper_directory_1
+    check_ldap_account_by_user_name mroberts grouper_directory_1
 }
 
-@test "230 Import SIS_COURSES" {
+@test "230 Create ref loaders" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
-    add_object tasks midpoint-objects-manual/tasks/task-import-sis-courses.xml
-    search_and_check_object tasks "Import from SIS courses"
-    wait_for_task_completion b73a2e66-8233-4c20-928f-acb30027b33e 8 10
-    assert_task_success b73a2e66-8233-4c20-928f-acb30027b33e
-
-    search_and_check_object orgs course_ACCT101
-    search_and_check_object orgs course_ACCT201
-    search_and_check_object orgs course_CS251
-    search_and_check_object orgs course_CS252
-    search_and_check_object orgs course_MATH100
-    search_and_check_object orgs course_MATH101
-    search_and_check_object orgs course_SCI123
-    search_and_check_object orgs course_SCI404
-
-    check_ldap_courses_by_name course_ACCT101 complex_directory_1
-    check_ldap_courses_by_name course_ACCT201 complex_directory_1
-    check_ldap_courses_by_name course_CS251 complex_directory_1
-    check_ldap_courses_by_name course_CS252 complex_directory_1
-    check_ldap_courses_by_name course_MATH100 complex_directory_1
-    check_ldap_courses_by_name course_MATH101 complex_directory_1
-    check_ldap_courses_by_name course_SCI123 complex_directory_1
-    check_ldap_courses_by_name course_SCI404 complex_directory_1
-
-    check_of_ldap_membership amorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" complex_directory_1
-    check_of_ldap_membership cmorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" complex_directory_1
-    check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" complex_directory_1
-    check_of_ldap_membership whenderson "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" complex_directory_1
-
-    check_of_ldap_membership amorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" complex_directory_1
-    check_of_ldap_membership cmorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" complex_directory_1
-    check_of_ldap_membership ddavis "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" complex_directory_1
-    check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" complex_directory_1
-
-    check_of_ldap_membership kwhite "ou=courses,ou=groups,dc=internet2,dc=edu" "CS252" complex_directory_1
-
-    check_of_ldap_membership danderson "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" complex_directory_1
-    check_of_ldap_membership ddavis "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" complex_directory_1
-    check_of_ldap_membership kwhite "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" complex_directory_1
-    check_of_ldap_membership wprice "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" complex_directory_1
-
-    check_of_ldap_membership amorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH101" complex_directory_1
-    check_of_ldap_membership cmorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH101" complex_directory_1
-    check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH101" complex_directory_1
-
-    check_of_ldap_membership danderson "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI123" complex_directory_1
-    check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI123" complex_directory_1
-
-    check_of_ldap_membership kwhite "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI404" complex_directory_1
-    check_of_ldap_membership wprice "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI404" complex_directory_1
+    ./create-ref-loaders.sh
 }
 
-@test "240 Check 'TestUser240' in Midpoint and LDAP" {
+@test "235 Wait for loaders to run" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
-    check_health
-    echo "<user><name>TestUser240</name><fullName>Test User240</fullName><givenName>Test</givenName><familyName>User240</familyName><credentials><password><value><clearValue>password</clearValue></value></password></credentials></user>" >/tmp/testuser240.xml
-    add_object users /tmp/testuser240.xml
-    rm /tmp/testuser240.xml
-    search_and_check_object users TestUser240
-
-    execute_bulk_action tests/resources/bulk-action/recompute-role-grouper-sysadmin.xml complex_midpoint_server_1
-    execute_bulk_action tests/resources/bulk-action/assign-role-grouper-sysadmin-to-test-user.xml complex_midpoint_server_1
 
-    check_ldap_account_by_user_name TestUser240 complex_directory_1
-    check_of_ldap_membership TestUser240 "ou=groups,dc=internet2,dc=edu" "sysadmingroup" complex_directory_1
-    
-    delete_object_by_name users TestUser240
+    sleep 120
 }
 
-@test "250 Make 'banderson' Grouper administrator" {
+@test "240 Create additional ref groups" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
-    check_health
-    recompute roles d48ec05b-fffd-4262-acd3-d9ff63365b62
-    execute_bulk_action tests/resources/bulk-action/assign-role-grouper-sysadmin-to-banderson.xml complex_midpoint_server_1
-    recompute users e897468f-20bd-419c-8fc5-1fe60e2600de # for some reason this looks necessary (TODO)
-    check_of_ldap_membership banderson "ou=groups,dc=internet2,dc=edu" "sysadmingroup" complex_directory_1
+
+    ./add-ref-groups.sh
 }
 
-#@test "255 Wait 120 seconds for changes to be propagated to Grouper" {
+#@test "250 Check 'TestUser250' in midPoint and LDAP" {
 #    if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 #
-#    sleep 120
+#    check_health
+#    echo "<user><name>TestUser250</name><fullName>Test User250</fullName><givenName>Test</givenName><familyName>User250</familyName><credentials><password><value><clearValue>password</clearValue></value></password></credentials></user>" >/tmp/testuser250.xml
+#    add_object users /tmp/testuser250.xml
+#    rm /tmp/testuser250.xml
+#    search_and_check_object users TestUser250
+#
+#    # probably will not work
+#    execute_bulk_action tests/resources/bulk-action/assign-role-grouper-sysadmin-to-test-user.xml grouper_midpoint_server_1
+#
+#    check_ldap_account_by_user_name TestUser250 grouper_directory_1
+#    check_of_ldap_membership TestUser250 "ou=groups,dc=internet2,dc=edu" "sysadmingroup" grouper_directory_1
+#    
+#    delete_object_by_name users TestUser250
 #}
 
-@test "260 Export ref groups" {
-    if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
-
-    ./add-ref-groups.sh
-}
-
-@test "265 Wait 120 seconds for changes to be propagated to MQ" {
-    if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
-
-    sleep 120
-}
-
-@test "300 Test Grouper resource" {
-    if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
-    test_resource 1eff65de-5bb6-483d-9edf-8cc2c2ee0233
-}
-
 @test "310 Import Grouper-to-midPoint async update task" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
@@ -261,93 +201,162 @@ load ../../../library
     return 1
 }
 
+@test "330 Check groups in midPoint and LDAP" {
+    if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
+
+#    wait_for_task_completion b73a2e66-8233-4c20-928f-acb30027b33e 8 10
+#    assert_task_success b73a2e66-8233-4c20-928f-acb30027b33e
+
+    search_and_check_object orgs course_ACCT101
+    search_and_check_object orgs course_ACCT201
+    search_and_check_object orgs course_CS251
+    search_and_check_object orgs course_CS252
+    search_and_check_object orgs course_MATH100
+    search_and_check_object orgs course_MATH101
+    search_and_check_object orgs course_SCI123
+    search_and_check_object orgs course_SCI404
+
+    check_ldap_courses_by_name course_ACCT101 grouper_directory_1
+    check_ldap_courses_by_name course_ACCT201 grouper_directory_1
+    check_ldap_courses_by_name course_CS251 grouper_directory_1
+    check_ldap_courses_by_name course_CS252 grouper_directory_1
+    check_ldap_courses_by_name course_MATH100 grouper_directory_1
+    check_ldap_courses_by_name course_MATH101 grouper_directory_1
+    check_ldap_courses_by_name course_SCI123 grouper_directory_1
+    check_ldap_courses_by_name course_SCI404 grouper_directory_1
+
+# memberships will be there only after triggers are executed
+
+#    check_of_ldap_membership amorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" grouper_directory_1
+#    check_of_ldap_membership cmorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" grouper_directory_1
+#    check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" grouper_directory_1
+#    check_of_ldap_membership whenderson "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" grouper_directory_1
+
+#    check_of_ldap_membership amorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" grouper_directory_1
+#    check_of_ldap_membership cmorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" grouper_directory_1
+#    check_of_ldap_membership ddavis "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" grouper_directory_1
+#    check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" grouper_directory_1
+
+#    check_of_ldap_membership kwhite "ou=courses,ou=groups,dc=internet2,dc=edu" "CS252" grouper_directory_1
+
+#    check_of_ldap_membership danderson "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" grouper_directory_1
+#    check_of_ldap_membership ddavis "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" grouper_directory_1
+#    check_of_ldap_membership kwhite "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" grouper_directory_1
+#    check_of_ldap_membership wprice "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" grouper_directory_1
+
+#    check_of_ldap_membership amorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH101" grouper_directory_1
+#    check_of_ldap_membership cmorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH101" grouper_directory_1
+#    check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH101" grouper_directory_1
+
+#    check_of_ldap_membership danderson "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI123" grouper_directory_1
+#    check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI123" grouper_directory_1
+
+#    check_of_ldap_membership kwhite "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI404" grouper_directory_1
+#    check_of_ldap_membership wprice "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI404" grouper_directory_1
+}
+
+
 @test "330 Add wprice to 'midpoint:test' and 'ref:affiliation:alum_includes' groups" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
-    docker cp tests/resources/grouper/t330.gsh complex_grouper_daemon_1:/tmp/
-    docker exec complex_grouper_daemon_1 bash -c "/opt/grouper/grouper.apiBinary/bin/gsh /tmp/t330.gsh"
+    skip TODO
+
+    docker cp tests/resources/grouper/t330.gsh grouper_grouper_daemon_1:/tmp/
+    docker exec grouper_grouper_daemon_1 bash -c "/opt/grouper/grouper.apiBinary/bin/gsh /tmp/t330.gsh"
 }
 
 @test "335 Wait 80 seconds for changes to be propagated to MQ" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
+    skip TODO
+
     sleep 80
 }
 
 @test "340 Assert wprice membership in LDAP" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
-    assert_ldap_user_has_value wprice Entitlement "midpoint:test" complex_directory_1
-    assert_ldap_user_has_value wprice Entitlement "ref:affiliation:alum" complex_directory_1
+    skip TODO
+
+    assert_ldap_user_has_value wprice Entitlement "midpoint:test" grouper_directory_1
+    assert_ldap_user_has_value wprice Entitlement "ref:affiliation:alum" grouper_directory_1
 }
 
 @test "350 Add kwhite to 'midpoint:test', remove wprice from 'ref:affiliation:alum_includes'" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
-    docker cp tests/resources/grouper/t350.gsh complex_grouper_daemon_1:/tmp/
-    docker exec complex_grouper_daemon_1 bash -c "/opt/grouper/grouper.apiBinary/bin/gsh /tmp/t350.gsh"
+    skip TODO
+
+    docker cp tests/resources/grouper/t350.gsh grouper_grouper_daemon_1:/tmp/
+    docker exec grouper_grouper_daemon_1 bash -c "/opt/grouper/grouper.apiBinary/bin/gsh /tmp/t350.gsh"
 }
 
 @test "355 Wait 80 seconds for changes to be propagated to MQ" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
+    skip TODO
+
     sleep 80
 }
 
 @test "360 Assert wprice and kwhite membership in LDAP" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
-    assert_ldap_user_has_value kwhite Entitlement "midpoint:test" complex_directory_1
-    assert_ldap_user_has_value wprice Entitlement "midpoint:test" complex_directory_1
-    assert_ldap_user_has_no_value wprice Entitlement "ref:affiliation:alum" complex_directory_1
+    skip TODO
+
+    assert_ldap_user_has_value kwhite Entitlement "midpoint:test" grouper_directory_1
+    assert_ldap_user_has_value wprice Entitlement "midpoint:test" grouper_directory_1
+    assert_ldap_user_has_no_value wprice Entitlement "ref:affiliation:alum" grouper_directory_1
 }
 
 @test "400 Suspend async update task" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
-    suspend_task 47fc57bd-8c34-4555-9b9f-7087ff179860 complex_midpoint_server_1
+    suspend_task 47fc57bd-8c34-4555-9b9f-7087ff179860 grouper_midpoint_server_1
     wait_for_task_completion 47fc57bd-8c34-4555-9b9f-7087ff179860 5 10
 }
 
 @test "410 Remove kwhite and wprice from 'midpoint:test'" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
-    docker cp tests/resources/grouper/t410.gsh complex_grouper_daemon_1:/tmp/
-    docker exec complex_grouper_daemon_1 bash -c "/opt/grouper/grouper.apiBinary/bin/gsh /tmp/t410.gsh"
+    skip TODO
+
+    docker cp tests/resources/grouper/t410.gsh grouper_grouper_daemon_1:/tmp/
+    docker exec grouper_grouper_daemon_1 bash -c "/opt/grouper/grouper.apiBinary/bin/gsh /tmp/t410.gsh"
 }
 
 @test "420 Reconcile Grouper" {
     if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi
 
-    add_object tasks midpoint-objects-manual/tasks/task-reconciliation-grouper-users.xml
-    search_and_check_object tasks "Grouper reconciliation (users)"
-    wait_for_task_completion 42aa9f43-64c5-41a6-814c-b58b9ea4e204 6 10
-    assert_task_success 42aa9f43-64c5-41a6-814c-b58b9ea4e204
-
-    search_and_check_object users jsmith
-    search_and_check_object users banderson
-    search_and_check_object users kwhite
-    search_and_check_object users whenderson
-    search_and_check_object users ddavis
-    search_and_check_object users cmorrison
-    search_and_check_object users danderson
-    search_and_check_object users amorrison
-    search_and_check_object users wprice
-    search_and_check_object users mroberts
-
-    check_ldap_account_by_user_name jsmith complex_directory_1
-    check_ldap_account_by_user_name banderson complex_directory_1
-    check_ldap_account_by_user_name kwhite complex_directory_1
-    check_ldap_account_by_user_name whenderson complex_directory_1
-    check_ldap_account_by_user_name ddavis complex_directory_1
-    check_ldap_account_by_user_name cmorrison complex_directory_1
-    check_ldap_account_by_user_name danderson complex_directory_1
-    check_ldap_account_by_user_name amorrison complex_directory_1
-    check_ldap_account_by_user_name wprice complex_directory_1
-    check_ldap_account_by_user_name mroberts complex_directory_1
-
-    assert_ldap_user_has_no_value wprice Entitlement "midpoint:test" complex_directory_1
-    assert_ldap_user_has_no_value kwhite Entitlement "midpoint:test" complex_directory_1
+    add_object tasks midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml
+    search_and_check_object tasks "Grouper reconciliation (groups)"
+    wait_for_task_completion 605a0127-a313-442a-9d5e-151eac8b0745 6 10
+    assert_task_success 605a0127-a313-442a-9d5e-151eac8b0745
+
+#    search_and_check_object users jsmith
+#    search_and_check_object users banderson
+#    search_and_check_object users kwhite
+#    search_and_check_object users whenderson
+#    search_and_check_object users ddavis
+#    search_and_check_object users cmorrison
+#    search_and_check_object users danderson
+#    search_and_check_object users amorrison
+#    search_and_check_object users wprice
+#    search_and_check_object users mroberts
+#
+#    check_ldap_account_by_user_name jsmith grouper_directory_1
+#    check_ldap_account_by_user_name banderson grouper_directory_1
+#    check_ldap_account_by_user_name kwhite grouper_directory_1
+#    check_ldap_account_by_user_name whenderson grouper_directory_1
+#    check_ldap_account_by_user_name ddavis grouper_directory_1
+#    check_ldap_account_by_user_name cmorrison grouper_directory_1
+#    check_ldap_account_by_user_name danderson grouper_directory_1
+#    check_ldap_account_by_user_name amorrison grouper_directory_1
+#    check_ldap_account_by_user_name wprice grouper_directory_1
+#    check_ldap_account_by_user_name mroberts grouper_directory_1
+#
+#    assert_ldap_user_has_no_value wprice Entitlement "midpoint:test" grouper_directory_1
+#    assert_ldap_user_has_no_value kwhite Entitlement "midpoint:test" grouper_directory_1
 }
 
 @test "999 Clean up" {
diff --git a/demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-test-user.xml b/demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-test-user.xml
index 0cb1a6b..f8c84b3 100644
--- a/demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-test-user.xml
+++ b/demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-test-user.xml
@@ -8,14 +8,14 @@
                     <s:searchFilter>
                         <q:equal>
                             <q:path>c:name</q:path>
-                            <q:value>TestUser240</q:value>
+                            <q:value>TestUser250</q:value>
                         </q:equal>
                     </s:searchFilter>
                     <s:action>
                         <s:type>assign</s:type>
                         <s:parameter>
                             <s:name>role</s:name>
-							<c:value xsi:type="xsd:string">d48ec05b-fffd-4262-acd3-d9ff63365b62</c:value>
+ 			    <c:value xsi:type="xsd:string">d48ec05b-fffd-4262-acd3-d9ff63365b62</c:value>
                         </s:parameter>
                     </s:action>
                 </s:search>
diff --git a/tests/main.bats b/tests/main.bats
index 6bcc840..eadbc5b 100755
--- a/tests/main.bats
+++ b/tests/main.bats
@@ -30,10 +30,10 @@ load ../common
     cd demo/postgresql ; docker-compose down -v ; true
 }
 
-#@test "130 Cleanup before further tests - demo/complex" {
-#    docker ps -a
-#    cd demo/complex ; docker-compose down -v ; true
-#}
+@test "130 Cleanup before further tests - demo/grouper" {
+    docker ps -a
+    cd demo/grouper ; docker-compose down -v ; true
+}
 
 # not much more to check here, as we cannot start midpoint container without having a repository
 # so continuing with tests in demo/plain directory