diff --git a/.gitignore b/.gitignore
index f763b7c..63868ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,9 +37,6 @@
 # Build
 build
 
-# Gradle
-.gradle
-
 # Ansible
 ansible/*.retry
 *.retry
diff --git a/build.gradle b/build.gradle
deleted file mode 100644
index 54feb5d..0000000
--- a/build.gradle
+++ /dev/null
@@ -1,75 +0,0 @@
-
-/*
- * Copyright 2017-present Open Networking Foundation
-
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
-
- * http://www.apache.org/licenses/LICENSE-2.0
-
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-import org.yaml.snakeyaml.Yaml
-
-ext {
-
-    // Deployment target config file (yaml format); this can be overwritten from the command line
-    // using the -PdeployConfig=<file-path> syntax.
-    deployConfig = project.hasProperty('deployConfig') ? project.getProperty('deployConfig') : './config/default.yml'
-
-    println "Using deployment config: $deployConfig"
-    File configFile = new File(deployConfig)
-    def yaml = new Yaml()
-    config = yaml.load(configFile.newReader())
-
-    // Upstream registry to simplify filling out the comps table below
-    upstreamReg = project.hasProperty('upstreamReg') ? project.getProperty('upstreamReg') : 'docker.io'
-
-    // Target registry to be used to publish docker images needed for deployment
-    targetReg = project.hasProperty('targetReg')
-        ? project.getProperty('targetReg')
-        : config.docker && config.docker.registry
-            ? config.docker.registry
-            : config.headnode.ip
-                ? config.headnode.ip + ":5000"
-                : 'localhost:5000'
-
-    // The tag used to tag the docker images push to the target registry
-    targetTag = project.hasProperty('targetTag')
-        ? project.getProperty('targetTag')
-        : config.docker && config.docker.imageVersion
-            ? config.docker.imageVersion
-            : 'candidate'
-
-    profileName = config.common && config.common.cord_profile
-        ? config.common.cord_profile
-        : 'rcord'
-
-    inventoryFileName = 'inventory/' + profileName
-}
-
-task buildImages(type: Exec) {
-  executable = "ansible-playbook"
-  args = [ "-i", inventoryFileName,
-    "--extra-vars", "@../genconfig/config.yml",
-    "--extra-vars", "build_docker_tag="+targetTag,
-    "--extra-vars", "cord_dir=../..",
-    "build-platform-install-playbook.yml" ]
-}
-
-task publish(type: Exec) {
-  executable = "ansible-playbook"
-  args = [ "-i", "../genconfig/cord-inv",
-    "--extra-vars", "@../genconfig/config.yml",
-    "--extra-vars", "build_docker_tag="+targetTag,
-    "--extra-vars", "deploy_docker_tag="+targetTag,
-    "--extra-vars", "deploy_docker_registry="+targetReg,
-    "publish-platform-install-playbook.yml" ]
-}
diff --git a/copy-cord-playbook.yml b/copy-cord-playbook.yml
index 233f67e..5fc1955 100644
--- a/copy-cord-playbook.yml
+++ b/copy-cord-playbook.yml
@@ -1,3 +1,4 @@
+---
 
 # Copyright 2017-present Open Networking Foundation
 #
@@ -13,13 +14,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
----
 # copy-cord-playbook.yml
 # Copy the cord directory from config node to head node
 
 - name: Include vars
-  hosts: config
+  hosts: head
   tasks:
     - name: Include variables
       include_vars: "{{ item }}"
diff --git a/cord-compute-playbook.yml b/cord-compute-playbook.yml
deleted file mode 100644
index 712e264..0000000
--- a/cord-compute-playbook.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-# Copyright 2017-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
----
-# cord-compute-playbook.yml
-# Installs and configures compute nodes
-
-- include: prep-computenode-playbook.yml
-- include: deploy-computenode-playbook.yml
-- include: onboard-openstack-playbook.yml
-
diff --git a/cord-config-playbook.yml b/cord-config-playbook.yml
index 7a98d9d..a7fcd5a 100644
--- a/cord-config-playbook.yml
+++ b/cord-config-playbook.yml
@@ -1,3 +1,4 @@
+---
 
 # Copyright 2017-present Open Networking Foundation
 #
@@ -13,13 +14,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
----
 # cord-config-playbook.yml
 # Creates all configuration for a CORD pod
 
 - name: Include vars
-  hosts: all
+  hosts: config
   tasks:
     - name: Include variables
       include_vars: "{{ item }}"
diff --git a/deploy-xos-playbook.yml b/deploy-xos-playbook.yml
deleted file mode 100644
index 24e3b8c..0000000
--- a/deploy-xos-playbook.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-# Copyright 2017-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
----
-# deploy-xos-playbook.yml
-
-# This playbook is used for development.  It walks through CORD's
-# fetch -> build -> deploy container pipeline for XOS.
-
-- name: Include vars
-  hosts: all
-  tasks:
-    - name: Include variables
-      include_vars: "{{ item }}"
-      with_items:
-        - "profile_manifests/{{ cord_profile }}.yml"
-        - profile_manifests/local_vars.yml
-
-# for docker, docker-compose
-- include: devel-tools-playbook.yml
-
-# pull / build base XOS images
-- include: ../../orchestration/xos/pull-xos-playbook.yml
-- include: ../../orchestration/xos/build-xos-playbook.yml
-
-# build XOS core
-- include: build-platform-install-playbook.yml
-
-- include: cord-config-playbook.yml
-
-- name: Pull other docker images if not present
-  hosts: head
-  roles:
-    - pull-xos-docker-images
-
-- include: launch-xos-playbook.yml
diff --git a/launch-xos-playbook.yml b/launch-xos-playbook.yml
deleted file mode 100644
index a965b9b..0000000
--- a/launch-xos-playbook.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-# Copyright 2017-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
----
-# launch-xos-playbook.yml
-
-- include: devel-tools-playbook.yml
-
-- include: start-xos-playbook.yml
-
-- include: onboard-profile-playbook.yml
-
diff --git a/prep-platform-playbook.yml b/prep-platform-playbook.yml
deleted file mode 100644
index b36a680..0000000
--- a/prep-platform-playbook.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-# Copyright 2017-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
----
-# prep-platform-playbook.yml
-# Prepares the CORD head node for installing OpenStack, ONOS, and XOS
-
-# Transitional note - this should only be called by gradle, not make.  The
-# included playbooks should be called individually by make.
-
-- include: prep-headnode-playbook.yml
-- include: prep-computenode-playbook.yml
diff --git a/redeploy-xos-playbook.yml b/redeploy-xos-playbook.yml
deleted file mode 100644
index 73a77b9..0000000
--- a/redeploy-xos-playbook.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-# Copyright 2017-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
----
-# redeploy-xos-playbook.yml
-
-# This playbook is used for development.  It walks through CORD's
-# fetch -> build -> deploy container pipeline to rebuild and redeploy
-# containers.  It assumes that the environment has already been set up.
-
-- name: Include vars
-  hosts: all
-  tasks:
-    - name: Include variables
-      include_vars: "{{ item }}"
-      with_items:
-        - "profile_manifests/{{ cord_profile }}.yml"
-        - profile_manifests/local_vars.yml
-
-# rebuild XOS images
-- include: ../../orchestration/xos/build-xos-playbook.yml
-
-# build XOS core
-- include: build-platform-install-playbook.yml
-
-- name: Bring up XOS containers
-  hosts: head
-  roles:
-    - xos-up
diff --git a/roles/copy-cord/tasks/main.yml b/roles/copy-cord/tasks/main.yml
index 1354a8b..617ef02 100644
--- a/roles/copy-cord/tasks/main.yml
+++ b/roles/copy-cord/tasks/main.yml
@@ -1,3 +1,4 @@
+---
 
 # Copyright 2017-present Open Networking Foundation
 #
@@ -13,8 +14,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
----
 # copy-cord/tasks/main.yml
 
 - name: Copy (sync) the cord directory to head node
