Updated to make relationship between components more understandable.
diff --git a/components/opdk-cassandra-client-update.yml b/components/opdk-cassandra-client-update.yml
deleted file mode 100644
index 105f7d7..0000000
--- a/components/opdk-cassandra-client-update.yml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-- name: Update cassandra clients
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  roles:
-  - apigee-opdk-start-components
-  - apigee-opdk-cassandra-client-update
-  tags:
-  - c-update
\ No newline at end of file
diff --git a/components/opdk-cassandra-rebuild.yml b/components/opdk-cassandra-rebuild.yml
deleted file mode 100644
index b280e6c..0000000
--- a/components/opdk-cassandra-rebuild.yml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-- name: Rebuild cassandra
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  vars:
-    opdk_region: dc-1
-  roles:
-  - apigee-opdk-cassandra-rebuild
-  tags:
-  - c-rebuild
diff --git a/components/opdk-install-component.yml b/components/opdk-install-component.yml
deleted file mode 100644
index 599291e..0000000
--- a/components/opdk-install-component.yml
+++ /dev/null
@@ -1,12 +0,0 @@
----
-- name: Setup component installer and install component
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  serial: 1
-  vars_files:
-  - ~/.apigee/credentials.yml
-  roles:
-  - apigee-opdk-setup-component-installer
-  - { role: apigee-opdk-setup-component, profile: '{{ component_profile }}' }
-  tags:
-  - apigee-component
diff --git a/components/opdk-pre-requisites.yml b/components/opdk-pre-requisites.yml
deleted file mode 100644
index faa47ca..0000000
--- a/components/opdk-pre-requisites.yml
+++ /dev/null
@@ -1,11 +0,0 @@
----
-- hosts: '{{ hosts }}'
-  strategy: free
-  gather_facts: no
-  roles:
-  - { role: apigee-opdk-setup-apigee-user, tags: ['apigee-user', 'apigee-pre-req'] }
-  - { role: apigee-opdk-setup-os-limits, tags: ['apigee-pre-req', 'apigee-tuning'] }
-  - { role: apigee-opdk-setup-openjdk, tags: ['apigee-pre-req', 'openjdk']}
-  - { role: apigee-opdk-setup-java-home, tags: ['apigee-pre-req', 'java-home']}
-  - { role: apigee-opdk-setup-bootstrap, tags: ['apigee-pre-req', 'apigee-bootstrap'] }
-  - { role: apigee-opdk-setup-silent-installation-config, tags: ['apigee-pre-req', 'apigee-silent-config'] }
diff --git a/components/opdk-setup-postgres-common.yml b/components/opdk-setup-postgres-common.yml
deleted file mode 100644
index 569969d..0000000
--- a/components/opdk-setup-postgres-common.yml
+++ /dev/null
@@ -1,37 +0,0 @@
----
-- name: Configure OS for Postgres
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  strategy: free
-  vars_files:
-  - ~/.apigee/credentials.yml
-  roles:
-  - apigee-opdk-enable-swap
-  - apigee-opdk-setup-apigee-user
-  - apigee-opdk-setup-os-postgres
-  - apigee-opdk-setup-postgres-config
-
-- name: Install Postgres component installation
-  include: opdk-install-component.yml
-  vars:
-    hosts: '{{ hosts }}'
-    component_profile: 'ps'
-
-- name: Configure Postgres master
-  include: 'opdk-setup-postgres-master.yml'
-  when: pg_component is defined and pg_component == 'master'
-  tags:
-  - apigee-component
-
-- name: Configure Postgres standby
-  include: 'opdk-setup-postgres-standby.yml'
-  when: pg_component is defined and pg_component == 'standby'
-  tags:
-  - apigee-component
-
-- name: Report Postgres server report
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  serial: 1
-  roles:
-  - { role: apigee-opdk-server-self, server_types: ['ps'] }
diff --git a/components/opdk-setup-postgres-master.yml b/components/opdk-setup-postgres-master.yml
deleted file mode 100644
index a443b85..0000000
--- a/components/opdk-setup-postgres-master.yml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-- name: Setting up Postgres master
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  serial: 1
-  roles:
-  - apigee-opdk-setup-postgres-master
-  tags:
-  - pgmaster
diff --git a/components/opdk-setup-postgres-standby.yml b/components/opdk-setup-postgres-standby.yml
deleted file mode 100644
index 977497f..0000000
--- a/components/opdk-setup-postgres-standby.yml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-- name: Setting up Postgres standby
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  serial: 1
-  roles:
-  - apigee-opdk-setup-postgres-standby
-  tags:
-  - pgstandby
diff --git a/components/opdk-setup-postgresql-add.yml b/components/opdk-setup-postgresql-add.yml
deleted file mode 100644
index 2251930..0000000
--- a/components/opdk-setup-postgresql-add.yml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-- name: Register Postgres
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  vars_files:
-  - ~/.apigee/credentials.yml
-  roles:
-  - { role: apigee-opdk-server-self, server_types: ['ps'] }
-  - apigee-opdk-setup-postgresql-add
-
diff --git a/components/opdk-setup-qpid-add.yml b/components/opdk-setup-qpid-add.yml
deleted file mode 100644
index badbcdb..0000000
--- a/components/opdk-setup-qpid-add.yml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-- name: Register Qpid
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  vars_files:
-  - ~/.apigee/credentials.yml
-  roles:
-  - { role: apigee-opdk-server-self, server_types: ['qs'] }
-  - apigee-opdk-setup-qpid-add
-
diff --git a/configuration/opdk-set-reachable.yml b/configuration/opdk-set-reachable.yml
deleted file mode 100644
index c7cd585..0000000
--- a/configuration/opdk-set-reachable.yml
+++ /dev/null
@@ -1,11 +0,0 @@
----
-- name: Set reachability flag
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  strategy: free
-  vars_files:
-  - ~/.apigee/credentials.yml
-  roles:
-  - { role: apigee-opdk-set-reachable, reachable: '{{ reachability }}', server_types: ['router','mp'] }
-  tags:
-  - reachability
\ No newline at end of file
diff --git a/configuration/opdk-setup-org.yml b/configuration/opdk-setup-org.yml
deleted file mode 100644
index 6a377a7..0000000
--- a/configuration/opdk-setup-org.yml
+++ /dev/null
@@ -1,11 +0,0 @@
----
-- name: Set up organization
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  vars_files:
-  - ~/.apigee/credentials.yml
-  serial: 1
-  roles:
-  - apigee-opdk-setup-org-config
-  - apigee-opdk-setup-org
-
diff --git a/configuration/opdk-setup-os.yml b/configuration/opdk-setup-os.yml
deleted file mode 100644
index 50e3276..0000000
--- a/configuration/opdk-setup-os.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-- name: Configure OS for Edge
-  hosts: '{{ hosts }}'
-  become: yes
-  gather_facts: no
-  strategy: free
-  pre_tasks:
-  - name: Load credentials from file
-    include_vars: '~/.apigee/credentials.yml'
-  roles:
-  - apigee-opdk-setup-os-minimum
-  - apigee-opdk-setup-selinux-disable
-  - apigee-opdk-shutdown-iptables
-  - apigee-opdk-setup-os-common
-
diff --git a/configuration/update-user.yml b/configuration/update-user.yml
deleted file mode 100644
index 895e189..0000000
--- a/configuration/update-user.yml
+++ /dev/null
@@ -1,40 +0,0 @@
----
-- name: Update SSH keys for user
-  hosts: '{{ hosts }}'
-  gather_facts: no
-  become: yes
-  vars:
-    pubkey: '~/.ssh/id_rsa.pub'
-
-  vars_files:
-  - ~/.apigee/credentials.yml
-
-  tasks:
-  - name: Build EC2 facts cache
-    ec2_facts:
-
-  - name: Build setup facts cache
-    setup:
-
-  - name: Copy local public keys to server for user {{ user }}
-    authorized_key:
-      user: '{{ user }}'
-      state: present
-      key: "{{ lookup('file', '{{ pubkey }}') }}"
-
-  - name: Permit root login over SSH
-    lineinfile:
-      state: present
-      dest: /etc/ssh/sshd_config
-      regexp: '(^#)(PermitRootLogin yes)'
-      line: '\2'
-      backrefs: yes
-    notify:
-    - Restart SSH service
-    when: user == 'root'
-
-  handlers:
-  - name: Restart SSH service
-    service:
-      name: sshd
-      state: restarted
diff --git a/installation-rollback.yml b/installation-rollback.yml
index 3081d6f..39def58 100644
--- a/installation-rollback.yml
+++ b/installation-rollback.yml
@@ -4,4 +4,4 @@
   vars:
     remove_apigee: false
   roles:
-  - apigee-opdk-setup-bootstrap-rollback
+  - { role: apigee-opdk-setup-bootstrap-rollback }
diff --git a/installation.yml b/installation.yml
deleted file mode 100644
index 7856cf1..0000000
--- a/installation.yml
+++ /dev/null
@@ -1,310 +0,0 @@
----
-- name: Update the ansible cache
-  hosts: planet
-  tags: ['cache']
-  vars_files:
-  - ~/.apigee/credentials.yml
-  roles:
-  - apigee-opdk-setup-default-settings
-
-- name: Setup OS
-  include: configuration/opdk-setup-os.yml
-  vars:
-    hosts: 'planet'
-  tags:
-  - os
-  - os-pre-req
-
-- name: Update user with root privilege
-  include: configuration/update-user.yml
-  vars:
-    hosts: 'planet'
-    user: 'root'
-  tags:
-  - root-user
-  - os-pre-req
-
-- name: Setup Edge pre-requisites
-  include: components/opdk-pre-requisites.yml
-  vars:
-    hosts: 'planet'
-    jdk_version: '1.8'
-    opdk_ldap_type: '2'
-  tags:
-  - apigee-pre-req
-
-- name: Setup Cassandra & Zookeeper in DC-2
-  include: components/opdk-install-component.yml
-  vars:
-    hosts: 'dc-2-ds'
-    component_profile: 'ds'
-    jdk_version: '1.8'
-    opdk_ldap_type: '2'
-  tags:
-  - dc-2-ds
-  - ds
-
-- name: Refresh Cassandra & Zookeeper in DC-1 with DC-2 setup
-  include: components/opdk-install-component.yml
-  vars:
-    hosts: 'dc-1-ds'
-    component_profile: 'ds'
-    jdk_version: '1.8'
-    opdk_ldap_type: '2'
-  tags:
-  - dc-1-ds
-  - ds
-
-- name: Update Cassandra client on DC-1
-  include: components/opdk-cassandra-client-update.yml
-  vars:
-     hosts: 'dc-1-ms'
-     jdk_version: '1.8'
-  tags:
-  - dc-1-ms
-  - ms
-  - cass_client
-
-- name: Refresh Management Server on DC-1
-  include: components/opdk-install-component.yml
-  vars:
-    hosts: 'dc-1-ms'
-    component_profile: 'ms'
-    jdk_version: '1.8'
-    opdk_ldap_type: '2'
-  tags:
-  - dc-1-ms
-  - ms
-
-- name: Rebuild Cassandra on DC-2
-  include: components/opdk-cassandra-rebuild.yml
-  vars:
-    hosts: 'dc-2-ds'
-    jdk_version: '1.8'
-  tags:
-  - dc-2-ms
-  - ms
-
-- name: Setup Management Server on DC-2
-  include: components/opdk-install-component.yml
-  vars:
-    hosts: 'dc-2-ms'
-    component_profile: 'ms'
-    jdk_version: '1.8'
-    opdk_ldap_type: '2'
-  tags:
-  - dc-2-ms
-  - ms
-
-- name: Setup RMP on DC-2
-  include: components/opdk-install-component.yml
-  vars:
-    hosts: 'dc-2-rmp'
-    component_profile: 'rmp'
-    jdk_version: '1.8'
-  tags:
-  - dc-2-rmp
-  - rmp
-
-- name: Unset reachable flag for RMP on DC-1
-  include: configuration/opdk-set-reachable.yml
-  vars:
-    hosts: 'dc-1-rmp'
-    reachability: 'false'
-  tags:
-  - dc-1-rmp
-  - rmp
-
-- name: Refresh the RMP setup on DC-1
-  include: components/opdk-install-component.yml
-  vars:
-    hosts: 'dc-1-rmp'
-    component_profile: 'rmp'
-    jdk_version: '1.8'
-  tags:
-  - dc-1-rmp
-  - rmp
-
-- name: Set reachable flag for RMP on DC-1
-  include: configuration/opdk-set-reachable.yml
-  vars:
-    hosts: 'dc-1-rmp'
-    reachability: 'true'
-  tags:
-  - dc-1-rmp
-  - rmp
-
-- name: Setup Qpid on DC-2
-  include: components/opdk-install-component.yml
-  vars:
-    hosts: 'dc-2-qpid'
-    component_profile: 'qs'
-    jdk_version: '1.8'
-  tags:
-  - dc-2-qpid
-  - qpid
-
-- name: Register Qpid on DC-2
-  include: components/opdk-setup-qpid-add.yml
-  vars:
-    hosts: 'dc-2-qpid'
-  tags:
-  - dc-2-qpid-registration
-  - qpid
-
-- name: Setup Postgres Master on DC-2
-  include: components/opdk-setup-postgres-common.yml
-  vars:
-    hosts: 'dc-2-pgmaster'
-    pg_component: 'master'
-    jdk_version: '1.8'
-  tags:
-  - dc-2-pgmaster
-  - pgmaster
-  - pg
-
-- name: Setup Postgres Standby on DC-2
-  include: components/opdk-setup-postgres-common.yml
-  vars:
-    hosts: 'dc-2-pgstandby'
-    pg_component: 'standby'
-    jdk_version: '1.8'
-  tags:
-  - dc-2-pgstandby
-  - pg
-  - pgstandby
-
-- name: Register analytics cluster on DC-2
-  include: components/opdk-setup-postgresql-add.yml
-  vars:
-    hosts: 'dc-2-pgmaster'
-    pgmaster_group_name: 'dc-2-pgmaster'
-    pgstandby_group_name: 'dc-2-pgstandby'
-  tags:
-  - dc-2-pg-registration
-  - pg
-  - pg-add
-
-- name: Setup org on DC-2
-  include: configuration/opdk-setup-org.yml
-  vars:
-    hosts: 'dc-2-ms'
-  tags:
-  - org
-
-- name: Validate RMP proxy functionality on DC-2
-  include: validations/opdk-setup-validate.yml
-  vars:
-    hosts: 'dc-2-rmp'
-  tags:
-  - validation
-
-- name: Validate internal port connectivity
-  include: validations/opdk-internal-port-connectivity-validator.yml
-  tags:
-  - port-validator
-
-- name: Report status for all nodes
-  include: validations/opdk-setup-status.yml
-  vars:
-    hosts: 'planet'
-  tags:
-  - status
-
-- name: Download logs and configs from DC-1-DS
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-1-ds
-  tags:
-  - logs
-  - dc-1
-
-- name: Download logs and configs from DC-2-DS
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-2-ds
-  tags:
-  - logs
-  - dc-2
-
-- name: Download logs and configs from DC-1-MS
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-1-ms
-  tags:
-  - logs
-  - dc-1
-
-- name: Download logs and configs from DC-2-MS
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-2-ms
-  tags:
-  - logs
-  - dc-2
-
-- name: Download logs and configs from DC-1-RMP
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-1-rmp
-  tags:
-  - logs
-  - dc-1
-
-- name: Download logs and configs from DC-2-RMP
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-2-rmp
-  tags:
-  - logs
-  - dc-2
-
-- name: Download logs and configs from DC-1-QPID
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-1-qpid
-  tags:
-  - logs
-  - dc-1
-
-- name: Download logs and configs from DC-2-QPID
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-2-qpid
-  tags:
-  - logs
-  - dc-2
-
-- name: Download logs and configs from DC-1-PGMASTER
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-1-pgmaster
-  tags:
-  - logs
-  - dc-1
-
-- name: Download logs and configs from DC-2-PGMASTER
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-2-pgmaster
-  tags:
-  - logs
-  - dc-2
-
-- name: Download logs and configs from DC-1-PGSTANDBY
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-1-pgstandby
-  tags:
-  - logs
-  - dc-1
-
-- name: Download logs and configs from DC-2-PGSTANDBY
-  include: validations/opdk-setup-log-files.yml
-  vars:
-    hosts: dc-2-pgstandby
-  tags:
-  - logs
-  - dc-2
-
-
diff --git a/validations/opdk-internal-port-connectivity-validator.yml b/opdk-internal-port-connectivity-validator.yml
similarity index 100%
rename from validations/opdk-internal-port-connectivity-validator.yml
rename to opdk-internal-port-connectivity-validator.yml
diff --git a/validations/opdk-setup-log-files.yml b/opdk-setup-log-files.yml
similarity index 100%
rename from validations/opdk-setup-log-files.yml
rename to opdk-setup-log-files.yml
diff --git a/requirements.yml b/requirements.yml
index 1d912c3..4f74ba8 100644
--- a/requirements.yml
+++ b/requirements.yml
@@ -15,6 +15,8 @@
 
 - src: https://github.com/carlosfrias/apigee-opdk-setup-openjdk
 
+- src: https://github.com/carlosfrias/apigee-opdk-setup-java-home
+
 - src: https://github.com/carlosfrias/apigee-opdk-setup-bootstrap
 
 - src: https://github.com/carlosfrias/apigee-opdk-setup-silent-installation-config
@@ -23,8 +25,6 @@
 
 - src: https://github.com/carlosfrias/apigee-opdk-set-reachable
 
-- src: https://github.com/carlosfrias/apigee-opdk-server-self
-
 - src: https://github.com/carlosfrias/apigee-opdk-setup-component-installer
 
 - src: https://github.com/carlosfrias/apigee-opdk-setup-selinux-disable
@@ -73,16 +73,30 @@
 
 - src: https://github.com/carlosfrias/apigee-opdk-enable-swap
 
-- src: https://github.com/carlosfrias/apigee-opdk-cassandra-rebuild
+- src: https://github.com/carlosfrias/apigee-opdk-start-components
 
-- src: https://github.com/carlosfrias/apigee-opdk-cassandra-client-update
+- src: https://github.com/carlosfrias/apigee-opdk-stop-components
 
-- src: https://github.com/carlosfrias/apigee-opdk-start-components.git
+- src: https://github.com/carlosfrias/apigee-opdk-backup.git
 
-- src: https://github.com/carlosfrias/apigee-opdk-setup-qpid-add.git
+- src: https://github.com/carlosfrias/apigee-opdk-restore
 
-- src: https://github.com/carlosfrias/apigee-opdk-setup-postgresql-add.git
+- src: https://github.com/carlosfrias/apigee-opdk-server-self.git
+
+- src: https://github.com/carlosfrias/apigee-opdk-aws-setup.git
 
 - src: https://github.com/carlosfrias/apigee-opdk-cache-update.git
 
 - src: https://github.com/carlosfrias/apigee-opdk-modules
+
+- src: https://github.com/carlosfrias/apigee-opdk-ssh-user
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-java-home
+
+- src: https://github.com/carlosfrias/apigee-opdk-cassandra-rebuild
+
+- src: https://github.com/carlosfrias/apigee-opdk-cassandra-client-update
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-qpid-add.git
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-postgresql-add.git
\ No newline at end of file
diff --git a/validations/opdk-server-self.yml b/validations/opdk-server-self.yml
deleted file mode 100644
index 23b118e..0000000
--- a/validations/opdk-server-self.yml
+++ /dev/null
@@ -1,72 +0,0 @@
----
-- hosts: rmp
-  serial: 1
-  gather_facts: no
-  vars_files:
-  - ~/.apigee/credentials.yml
-  tasks:
-  - name: Obtain router server self report
-    ignore_errors: yes
-    opdk_server_self:
-      server_type: 'router'
-      username: '{{ opdk_user_email }}'
-      password: '{{ opdk_user_pass }}'
-  - debug: var="edge_router_self"
-
-  - name: Obtain message processor server self report
-    ignore_errors: yes
-    opdk_server_self:
-      server_type: 'mp'
-      username: '{{ opdk_user_email }}'
-      password: '{{ opdk_user_pass }}'
-
-  - debug: var="edge_mp_self"
-
-
-- hosts: pg
-  serial: 1
-  gather_facts: no
-  vars_files:
-  - ~/.apigee/credentials.yml
-  tasks:
-  - name: Obtain postgres server self report
-    ignore_errors: yes
-    opdk_server_self:
-      server_type: 'ps'
-      username: '{{ opdk_user_email }}'
-      password: '{{ opdk_user_pass }}'
-
-  - debug: var="edge_ps_self"
-
-
-- hosts: qpid
-  serial: 1
-  gather_facts: no
-  vars_files:
-  - ~/.apigee/credentials.yml
-  tasks:
-  - name: Obtain qpid server self report
-    ignore_errors: yes
-    opdk_server_self:
-      server_type: 'qs'
-      username: '{{ opdk_user_email }}'
-      password: '{{ opdk_user_pass }}'
-
-  - debug: var="edge_qs_self"
-
-
-- hosts: ms
-  serial: 1
-  gather_facts: no
-  vars_files:
-  - ~/.apigee/credentials.yml
-  tasks:
-  - name: Obtain management server self report
-    ignore_errors: yes
-    opdk_server_self:
-      server_type: 'ms'
-      username: '{{ opdk_user_email }}'
-      password: '{{ opdk_user_pass }}'
-
-  - debug: var="edge_ms_self"
-
diff --git a/validations/opdk-setup-status.yml b/validations/opdk-setup-status.yml
deleted file mode 100644
index 68971dd..0000000
--- a/validations/opdk-setup-status.yml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-- hosts: '{{ hosts }}'
-  gather_facts: no
-  roles:
-  - apigee-opdk-setup-status
-  tags:
-  - status
diff --git a/validations/opdk-setup-validate.yml b/validations/opdk-setup-validate.yml
deleted file mode 100644
index 53aacb3..0000000
--- a/validations/opdk-setup-validate.yml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-- hosts: '{{ hosts }}'
-  gather_facts: no
-  serial: 1
-  roles:
-  - apigee-opdk-setup-validate
-  tags:
-  - validate
-
-- hosts: '{{ hosts }}'
-  gather_facts: no
-  serial: 1
-  roles:
-  - apigee-opdk-setup-validate-cleanup
-  tags:
-  - validate-cleanup