diff --git a/Makefile b/Makefile
index 126856f7803a940763e5cd8754787d904bde4b53..a593f4c98bed86736ffb2faeaa5fba6c7433b3f9 100644
--- a/Makefile
+++ b/Makefile
@@ -12,21 +12,24 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+.PHONY: info
+info:
+	$(MAKE) -C $(ROOTFS) $@
+	
+.PHONY: gocheck
 ifndef GOPATH
-$(error No GOPATH set)
+	$(error No GOPATH set)
 endif
 
-include include.mk
-
 GO_DIRS ?= $(shell glide nv -x )
 GO_PKGS ?= $(shell glide nv)
 
 .PHONY: build
-build:
+build: gocheck
 	@scripts/build-go.sh
 
 .PHONY: build-cross
-build-cross:
+build-cross: gocheck
 	@BUILD_CROSS=1 scripts/build-go.sh
 
 .PHONY: all
@@ -40,14 +43,18 @@ clean:
 .PHONY: test
 test: build test-style test-unit
 
+ROOTFS := rootfs
+
 .PHONY: push
-push: container
+push: all
+	$(MAKE) -C $(ROOTFS) $@
 
 .PHONY: container
-container: .project .docker
+container: all
+	$(MAKE) -C $(ROOTFS) $@
 
 .PHONY: test-unit
-test-unit:
+test-unit: 
 	@echo Running tests...
 	go test -v $(GO_PKGS)
 
@@ -94,12 +101,3 @@ ifndef HAS_GOX
 	go get -u github.com/mitchellh/gox
 endif
 	glide install
-
-.PHONY: .project
-.project:
-	@if [[ -z "${PROJECT}" ]]; then echo "PROJECT variable must be set"; exit 1; fi
-
-.PHONY: .docker
-.docker:
-	@if [[ -z `which docker` ]] || ! docker version &> /dev/null; then echo "docker is not installed correctly"; exit 1; fi
-
diff --git a/cmd/expandybird/Dockerfile b/cmd/expandybird/Dockerfile
deleted file mode 100644
index 197359b2e9ec5e542564f8710cc13bf4aff36c39..0000000000000000000000000000000000000000
--- a/cmd/expandybird/Dockerfile
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 2015 The Kubernetes Authors All rights reserved.
-#
-# 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.
-
-FROM python:2
-MAINTAINER Jack Greenfield <jackgr@google.com>
-
-RUN ln -s /usr/local/bin/python /usr/bin/python
-
-RUN apt-get update \
-    && apt-get autoremove -y \
-    && apt-get clean \
-    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
-
-# following lines copied from golang:1.6
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
-        g++ \
-        gcc \
-        libc6-dev \
-        make \
-    && rm -rf /var/lib/apt/lists/*
-
-ENV GOLANG_VERSION 1.6
-ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
-ENV GOLANG_DOWNLOAD_SHA256 5470eac05d273c74ff8bac7bef5bad0b5abbd1c4052efbdbc8db45332e836b0b
-
-RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \
-    && echo "$GOLANG_DOWNLOAD_SHA256  golang.tar.gz" | sha256sum -c - \
-    && tar -C /usr/local -xzf golang.tar.gz \
-    && rm golang.tar.gz
-
-ENV GOPATH /go
-ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
-
-RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
-
-#end copied lines
-
-COPY . "$GOPATH"/src/github.com/kubernetes/deployment-manager
-WORKDIR "$GOPATH"/src/github.com/kubernetes/deployment-manager/expandybird
-
-RUN go get -v -d .
-RUN go install -v .
-
-RUN mkdir -p /var/expandybird/expansion
-WORKDIR /var/expandybird
-
-COPY ./expandybird/expansion /var/expandybird/expansion
-
-COPY ./expandybird/requirements.txt /var/expandybird/requirements.txt
-RUN pip install --no-cache-dir -r /var/expandybird/requirements.txt
-
-RUN cp "$GOPATH"/bin/expandybird /var/expandybird/expandybird
-RUN /bin/rm -rf "$GOPATH"
-
-EXPOSE 8080
-
-ENTRYPOINT ["/var/expandybird/expandybird", "-expansion_binary", "/var/expandybird/expansion/expansion.py"]
diff --git a/cmd/expandybird/Makefile b/cmd/expandybird/Makefile
deleted file mode 100644
index 16f0c7882c1e671e426f325b361f5ff1b1de5697..0000000000000000000000000000000000000000
--- a/cmd/expandybird/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2015 The Kubernetes Authors All rights reserved.
-#
-# 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.
-
-include ../include.mk
-
-.PHONY : all build push container clean .project
-
-DOCKER_REGISTRY := gcr.io
-PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
-IMAGE := expandybird
-
-ROOT_DIR := $(abspath ./..)
-DIR = $(ROOT_DIR)
-
-push: container
-ifeq ($(DOCKER_REGISTRY),gcr.io)
-	gcloud docker push $(PREFIX)/$(IMAGE):$(TAG)
-else
-	docker push $(PREFIX)/$(IMAGE):$(TAG)
-endif
-
-container:
-	docker build -t $(PREFIX)/$(IMAGE):$(TAG) -f Dockerfile $(DIR)
-
-clean:
-	-docker rmi $(PREFIX)/$(IMAGE):$(TAG)
-
-.PHONY: test
-test: lint vet test-unit
diff --git a/cmd/manager/Dockerfile b/cmd/manager/Dockerfile
deleted file mode 100644
index e882639157a5cc801aa4218f5f534a7708042cb5..0000000000000000000000000000000000000000
--- a/cmd/manager/Dockerfile
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2015 The Kubernetes Authors All rights reserved.
-#
-# 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.
-
-FROM golang:1.6
-MAINTAINER Jack Greenfield <jackgr@google.com>
-
-RUN apt-get update \
-    && apt-get autoremove -y \
-    && apt-get clean \
-    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
-
-WORKDIR /usr/local/bin
-ENV KUBE_VERSION v1.0.5
-
-RUN curl -fsSL -o kubectl https://storage.googleapis.com/kubernetes-release/release/$KUBE_VERSION/bin/linux/amd64/kubectl \
-    && chmod +x kubectl
-
-COPY . "$GOPATH"/src/github.com/kubernetes/deployment-manager
-
-WORKDIR "$GOPATH"/src/github.com/kubernetes/deployment-manager/manager
-
-RUN go-wrapper download
-RUN go-wrapper install
-
-WORKDIR /usr/local/bin
-RUN cp "$GOPATH"/bin/manager /usr/local/bin
-RUN /bin/rm -rf "$GOPATH"
-
-EXPOSE 8080
-
-ENTRYPOINT ["/usr/local/bin/manager", "--kubectl=/usr/local/bin/kubectl"]
diff --git a/cmd/resourcifier/Dockerfile b/cmd/resourcifier/Dockerfile
deleted file mode 100644
index c0298405533ba9785c6fb52a8bc75ff3da0b1428..0000000000000000000000000000000000000000
--- a/cmd/resourcifier/Dockerfile
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2015 The Kubernetes Authors All rights reserved.
-#
-# 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.
-
-FROM golang:1.6
-
-RUN apt-get update \
-    && apt-get autoremove -y \
-    && apt-get clean \
-    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
-
-WORKDIR /usr/local/bin
-ENV KUBE_VERSION v1.0.5
-
-RUN curl -fsSL -o kubectl https://storage.googleapis.com/kubernetes-release/release/$KUBE_VERSION/bin/linux/amd64/kubectl \
-    && chmod +x kubectl
-
-COPY . "$GOPATH"/src/github.com/kubernetes/deployment-manager
-
-WORKDIR "$GOPATH"/src/github.com/kubernetes/deployment-manager/resourcifier
-
-RUN go-wrapper download
-RUN go-wrapper install
-
-WORKDIR /usr/local/bin
-RUN cp "$GOPATH"/bin/resourcifier /usr/local/bin
-RUN /bin/rm -rf "$GOPATH"
-
-EXPOSE 8080
-
-ENTRYPOINT ["/usr/local/bin/resourcifier", "--kubectl=/usr/local/bin/kubectl"]
diff --git a/cmd/resourcifier/Makefile b/cmd/resourcifier/Makefile
deleted file mode 100644
index 9d6eebe1adfe025130e278e1e29a6892c502cdae..0000000000000000000000000000000000000000
--- a/cmd/resourcifier/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2015 The Kubernetes Authors All rights reserved.
-#
-# 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.
-
-# If you update this image please check the tag value before pushing.
-
-include ../include.mk
-
-.PHONY : all build push container clean
-
-DOCKER_REGISTRY := gcr.io
-PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
-IMAGE := resourcifier
-
-ROOT_DIR := $(abspath ./..)
-DIR = $(ROOT_DIR)
-
-push: container
-ifeq ($(DOCKER_REGISTRY),gcr.io)
-	gcloud docker push $(PREFIX)/$(IMAGE):$(TAG)
-else
-	docker push $(PREFIX)/$(IMAGE):$(TAG)
-endif
-
-container:
-	docker build -t $(PREFIX)/$(IMAGE):$(TAG) -f Dockerfile $(DIR)
-
-clean:
-	-docker rmi $(PREFIX)/$(IMAGE):$(TAG)
-
-.PHONY: test
-test: lint vet test-unit
diff --git a/include.mk b/include.mk
deleted file mode 100644
index 0d9ff7c3c899e1346298dd3919d6326a4e8dcb36..0000000000000000000000000000000000000000
--- a/include.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-.PHONY: info
-info:
-	@echo "Build tag: ${TAG}"
-	@echo "Registry: ${DOCKER_REGISTRY}"
-	@echo "Project: ${PROJECT}"
-	@echo "Image: ${IMAGE}"
-
-TAG ?= $(shell echo `date +"%s"`_`date +"%N"`)
-	
\ No newline at end of file
diff --git a/cmd/manager/Makefile b/rootfs/Makefile
similarity index 54%
rename from cmd/manager/Makefile
rename to rootfs/Makefile
index 209c874f210de31e2693d0cdf4bcd0187e472d5c..150bac8dd759430b412165e1030183e6e413633a 100644
--- a/cmd/manager/Makefile
+++ b/rootfs/Makefile
@@ -12,29 +12,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-include ../include.mk
+SUBDIRS := expandybird/. resourcifier/. manager/.
+TARGETS := info push container
 
-.PHONY : all build push container clean .project
+SUBDIRS_TARGETS := \
+	$(foreach t,$(TARGETS),$(addsuffix $t,$(SUBDIRS)))
 
-DOCKER_REGISTRY := gcr.io
-PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
-IMAGE := manager
+.PHONY : $(TARGETS) $(SUBDIRS_TARGETS)
 
-ROOT_DIR := $(abspath ./..)
-DIR = $(ROOT_DIR)
+$(TARGETS) : % : $(addsuffix %,$(SUBDIRS))
 
-push: container
-ifeq ($(DOCKER_REGISTRY),gcr.io)
-	gcloud docker push $(PREFIX)/$(IMAGE):$(TAG)
-else
-	docker push $(PREFIX)/$(IMAGE):$(TAG)
-endif
-
-container:
-	docker build -t $(PREFIX)/$(IMAGE):$(TAG) -f Dockerfile $(DIR)
-
-clean:
-	-docker rmi $(PREFIX)/$(IMAGE):$(TAG)
-
-.PHONY: test
-test: lint vet test-unit
+$(SUBDIRS_TARGETS) :
+	$(MAKE) -C $(@D) $(@F:.%=%)
diff --git a/rootfs/expandybird/Makefile b/rootfs/expandybird/Makefile
index d6b662500ae8a0a84b6757c5a14ad40af945224d..c87a43ac0319042da200d15434301e4fe1070d0b 100644
--- a/rootfs/expandybird/Makefile
+++ b/rootfs/expandybird/Makefile
@@ -12,27 +12,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-DOCKER_REGISTRY := gcr.io
-PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
 IMAGE ?= expandybird
-TAG ?= git-$(shell git rev-parse --short HEAD)
-FULL_IMAGE := $(PREFIX)/$(IMAGE)
 
-.PHONY: container
-container: binary expansion
-	docker build -t $(FULL_IMAGE):latest -f Dockerfile .
-	docker tag $(FULL_IMAGE):latest $(FULL_IMAGE):$(TAG)
+include ../include.mk
 
-.PHONY: push
-push: container
-ifeq ($(DOCKER_REGISTRY),gcr.io)
-	gcloud docker push $(PREFIX)/$(IMAGE):$(TAG)
-else
-	docker push $(PREFIX)/$(IMAGE):$(TAG)
-endif
+.PHONY: extras
+extras: expansion
 
+.PHONY: expansion
 expansion:
 	cp -R ../../expansion ./opt
-
-binary:
-	cp ../../bin/linux-amd64/expandybird ./bin
diff --git a/rootfs/include.mk b/rootfs/include.mk
new file mode 100644
index 0000000000000000000000000000000000000000..43d779adb0d06faa020529ebfcf04036c2f8bf4f
--- /dev/null
+++ b/rootfs/include.mk
@@ -0,0 +1,69 @@
+# Copyright 2015 The Kubernetes Authors All rights reserved.
+#
+# 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.
+
+# If you update this image please check the tag value before pushing.
+
+DOCKER_REGISTRY ?= gcr.io
+PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
+FULL_IMAGE := $(PREFIX)/$(IMAGE)
+
+TAG ?= git-$(shell git rev-parse --short HEAD)
+
+DEFAULT_PLATFORM := $(shell uname | tr '[:upper:]' '[:lower:]')
+PLATFORM ?= $(DEFAULT_PLATFORM)
+
+DEFAULT_ARCH := $(shell uname -m)
+ARCH ?= $(DEFAULT_ARCH)
+
+.PHONY: info
+info:
+	@echo "Build tag: ${TAG}"
+	@echo "Registry: ${DOCKER_REGISTRY}"
+	@echo "Project: ${PROJECT}"
+	@echo "Image: ${IMAGE}"
+	@echo "Platform: ${PLATFORM}"
+	@echo "Arch: ${ARCH}"
+
+.PHONY : .project
+
+.PHONY: push
+push: container
+ifeq ($(DOCKER_REGISTRY),gcr.io)
+	gcloud docker push $(FULL_IMAGE):$(TAG)
+else
+	docker push $(FULL_IMAGE):$(TAG)
+endif
+
+.PHONY: container
+container: .project .docker binary extras
+	docker build -t $(FULL_IMAGE):latest -f Dockerfile .
+	docker tag -f $(FULL_IMAGE):latest $(FULL_IMAGE):$(TAG)
+
+.project:
+	@if [[ -z "${PROJECT}" ]]; then echo "PROJECT variable must be set"; exit 1; fi
+
+.docker:
+	@if [[ -z `which docker` ]] || ! docker version &> /dev/null; then echo "docker is not installed correctly"; exit 1; fi
+
+CROSS_IMAGE := $(PLATFORM)-$(ARCH)/$(IMAGE)/$(IMAGE)
+
+.PHONY: binary
+binary:
+	@if [[ -z $(CROSS_IMAGE) ]]; then \
+		echo cp ../../bin/$(CROSS_IMAGE) ./bin ; \
+		cp ../../bin/$(CROSS_IMAGE) ./bin ; \
+	else \
+		echo cp ../../bin/$(IMAGE) ./bin ; \
+		cp ../../bin/$(IMAGE) ./bin ; \
+	fi
diff --git a/rootfs/manager/Makefile b/rootfs/manager/Makefile
index f8276efa7c771c6563623864cbefacb22e3f082b..4c38b8e40dac75911f30f8d6cd1f43826d950067 100644
--- a/rootfs/manager/Makefile
+++ b/rootfs/manager/Makefile
@@ -12,30 +12,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-DOCKER_REGISTRY := gcr.io
-PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
 IMAGE ?= manager
-TAG ?= git-$(shell git rev-parse --short HEAD)
-FULL_IMAGE := $(PREFIX)/$(IMAGE)
-
 KUBE_VERSION ?= v1.1.7
 
-.PHONY: container
-container: binary kubectl
-	docker build -t $(FULL_IMAGE):latest -f Dockerfile .
-	docker tag $(FULL_IMAGE):latest $(FULL_IMAGE):$(TAG)
-
-.PHONY: push
-push: container
-ifeq ($(DOCKER_REGISTRY),gcr.io)
-	gcloud docker push $(PREFIX)/$(IMAGE):$(TAG)
-else
-	docker push $(PREFIX)/$(IMAGE):$(TAG)
-endif
+include ../include.mk
 
-binary:
-	cp ../../bin/linux-amd64/manager ./bin
+.PHONY: extras
+extras: kubectl
 
+.PHONY: kubectl
 kubectl:
 	curl -fsSL -o bin/kubectl https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/bin/linux/amd64/kubectl
 	chmod +x bin/kubectl
diff --git a/rootfs/resourcifier/Makefile b/rootfs/resourcifier/Makefile
index a02d1472887ebfe2c2cbd77360076dc184be2cfe..d1a62ebca6003eebb4972d7218ad2854d09a7365 100644
--- a/rootfs/resourcifier/Makefile
+++ b/rootfs/resourcifier/Makefile
@@ -12,30 +12,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-DOCKER_REGISTRY := gcr.io
-PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
 IMAGE ?= resourcifier
-TAG ?= git-$(shell git rev-parse --short HEAD)
-FULL_IMAGE := $(PREFIX)/$(IMAGE)
-
 KUBE_VERSION ?= v1.1.7
 
-.PHONY: container
-container: binary kubectl
-	docker build -t $(FULL_IMAGE):latest -f Dockerfile .
-	docker tag $(FULL_IMAGE):latest $(FULL_IMAGE):$(TAG)
-
-.PHONY: push
-push: container
-ifeq ($(DOCKER_REGISTRY),gcr.io)
-	gcloud docker push $(PREFIX)/$(IMAGE):$(TAG)
-else
-	docker push $(PREFIX)/$(IMAGE):$(TAG)
-endif
+include ../include.mk
 
-binary:
-	cp ../../bin/linux-amd64/resourcifier ./bin
+.PHONY: extras
+extras: kubectl
 
+.PHONY: kubectl
 kubectl:
 	curl -fsSL -o bin/kubectl https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/bin/linux/amd64/kubectl
 	chmod +x bin/kubectl
diff --git a/scripts/start.sh b/scripts/start.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5cb0739fdb567dd8626ac251ec4a5409cb71bbec
--- /dev/null
+++ b/scripts/start.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+LOGDIR=log
+if [[ ! -d $LOGDIR ]]; then
+  mkdir $LOGDIR
+fi
+
+KUBECTL=`which kubectl`
+if [[ -z $KUBECTL ]] ; then
+  echo Cannot find kubectl
+  exit 1
+fi
+
+echo "Starting resourcifier..."
+RESOURCIFIER=bin/resourcifier
+if [[ -z $RESOURCIFIER ]] ; then
+	echo Cannot find resourcifier
+	exit 1
+fi
+pkill -f $RESOURCIFIER
+nohup $RESOURCIFIER > $LOGDIR/resourcifier.log 2>&1 --kubectl=$KUBECTL --port=8082 &
+echo
+
+echo "Starting expandybird..."
+EXPANDYBIRD=bin/expandybird
+if [[ -z $EXPANDYBIRD ]] ; then
+  echo Cannot find expandybird
+  exit 1
+fi
+pkill -f $EXPANDYBIRD
+nohup $EXPANDYBIRD > $LOGDIR/expandybird.log 2>&1 --port=8081 --expansion_binary=expansion/expansion.py &
+echo
+
+echo "Starting deployment manager..."
+MANAGER=bin/manager
+if [[ -z $MANAGER ]] ; then
+  echo Cannot find manager
+  exit 1
+fi
+pkill -f $MANAGER
+nohup $MANAGER > $LOGDIR/manager.log 2>&1 --port=8080  --kubectl=$KUBECTL --expanderURL=http://localhost:8081 --deployerURL=http://localhost:8082 &
+echo
+
+echo "Starting kubectl proxy..."
+pkill -f "$KUBECTL proxy"
+nohup $KUBECTL proxy --port=8001 &
+sleep 1s
+echo
+
+echo "Done."
diff --git a/scripts/stop.sh b/scripts/stop.sh
new file mode 100755
index 0000000000000000000000000000000000000000..70a092ef259d16f5ef3d11019f22b3f45f08c5f2
--- /dev/null
+++ b/scripts/stop.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+echo "Stopping resourcifier..."
+RESOURCIFIER=bin/resourcifier
+if [[ ! -z $RESOURCIFIER ]] ; then
+	pkill -f $RESOURCIFIER
+fi
+echo
+
+echo "Stopping expandybird..."
+EXPANDYBIRD=bin/expandybird
+if [[ ! -z $EXPANDYBIRD ]] ; then
+	pkill -f $EXPANDYBIRD
+fi
+echo
+
+echo "Stopping deployment manager..."
+MANAGER=bin/manager
+if [[ ! -z $MANAGER ]] ; then
+	pkill -f $MANAGER
+fi
+echo
+
+echo "Done."