diff --git a/stack.sh b/stack.sh
index 00bb891..8d71f75 100755
--- a/stack.sh
+++ b/stack.sh
@@ -10,7 +10,6 @@
 
 DIR=`pwd`
 DEST=/opt
-CMD=$1
 
 # Set the destination directories for openstack projects
 NOVA_DIR=$DEST/nova
@@ -41,95 +40,91 @@
 # TODO: switch to mysql for all services
 SQL_CONN=sqlite:///$NOVA_DIR/nova.sqlite
 
-# FIXME: commands should be: stack.sh all or list of services to install/run
+# FIXME: commands should be: stack.sh should allow specifying a subset of services
 
-# You should only have to run this once
-if [ "$CMD" == "install" ]; then
-    # install apt requirements
-    apt-get install -y -q `cat $DIR/apts/* | cut -d\# -f1`
+# install apt requirements
+apt-get install -y -q `cat $DIR/apts/* | cut -d\# -f1`
 
-    # install python requirements
-    pip install `cat $DIR/pips/*`
+# install python requirements
+pip install `cat $DIR/pips/*`
 
-    # compute service
-    git clone https://github.com/cloudbuilders/nova.git $NOVA_DIR
-    # image catalog service
-    git clone https://github.com/cloudbuilders/glance.git $GLANCE_DIR
-    # unified auth system (manages accounts/tokens)
-    git clone https://github.com/cloudbuilders/keystone.git $KEYSTONE_DIR
-    # a websockets/html5 or flash powered VNC console for vm instances
-    git clone https://github.com/cloudbuilders/noVNC.git $NOVNC_DIR
-    # django powered web control panel for openstack
-    git clone https://github.com/cloudbuilders/openstack-dashboard.git $DASH_DIR
-    # python client library to nova that dashboard (and others) use
-    git clone https://github.com/cloudbuilders/python-novaclient.git $NOVACLIENT_DIR
-    # openstackx is a collection of extensions to openstack.compute & nova 
-    # that is *deprecated*.  The code is being moved into python-novaclient & nova.
-    git clone https://github.com/cloudbuilders/openstackx.git $API_DIR
+# compute service
+git clone https://github.com/cloudbuilders/nova.git $NOVA_DIR
+# image catalog service
+git clone https://github.com/cloudbuilders/glance.git $GLANCE_DIR
+# unified auth system (manages accounts/tokens)
+git clone https://github.com/cloudbuilders/keystone.git $KEYSTONE_DIR
+# a websockets/html5 or flash powered VNC console for vm instances
+git clone https://github.com/cloudbuilders/noVNC.git $NOVNC_DIR
+# django powered web control panel for openstack
+git clone https://github.com/cloudbuilders/openstack-dashboard.git $DASH_DIR
+# python client library to nova that dashboard (and others) use
+git clone https://github.com/cloudbuilders/python-novaclient.git $NOVACLIENT_DIR
+# openstackx is a collection of extensions to openstack.compute & nova 
+# that is *deprecated*.  The code is being moved into python-novaclient & nova.
+git clone https://github.com/cloudbuilders/openstackx.git $API_DIR
 
-    # setup our checkouts so they are installed into python path
-    # allowing `import nova` or `import glance.client`
-    cd $NOVACLIENT_DIR; python setup.py develop
-    cd $KEYSTONE_DIR; python setup.py develop
-    cd $GLANCE_DIR; python setup.py develop
-    cd $API_DIR; python setup.py develop
-    cd $DASH_DIR/django-openstack; python setup.py develop
-    cd $DASH_DIR/openstack-dashboard; python setup.py develop
+# setup our checkouts so they are installed into python path
+# allowing `import nova` or `import glance.client`
+cd $NOVACLIENT_DIR; python setup.py develop
+cd $KEYSTONE_DIR; python setup.py develop
+cd $GLANCE_DIR; python setup.py develop
+cd $API_DIR; python setup.py develop
+cd $DASH_DIR/django-openstack; python setup.py develop
+cd $DASH_DIR/openstack-dashboard; python setup.py develop
 
-    # attempt to load modules: kvm (hardware virt) and nbd (network block 
-    # device - used to manage qcow images)
-    modprobe nbd || true
-    modprobe kvm || true
-    # if kvm wasn't running before we need to restart libvirt to enable it
-    /etc/init.d/libvirt-bin restart
+# attempt to load modules: kvm (hardware virt) and nbd (network block 
+# device - used to manage qcow images)
+modprobe nbd || true
+modprobe kvm || true
+# if kvm wasn't running before we need to restart libvirt to enable it
+/etc/init.d/libvirt-bin restart
 
-    # setup nova instance directory
-    mkdir -p $NOVA_DIR/instances
+# setup nova instance directory
+mkdir -p $NOVA_DIR/instances
 
-    # if there is a partition labeled nova-instances use it (ext filesystems
-    # can be labeled via e2label)
-    if [ -L /dev/disk/by-label/nova-instances ]; then
-        mount -L nova-instances /$NOVA_DIR/instances
-    fi
-
-    # *Dashboard*: setup django application to serve via apache/wsgi
-
-    # Dash currently imports quantum even if you aren't using it.  Instead 
-    # of installing quantum we can create a simple module that will pass the 
-    # initial imports
-    mkdir $DASH_DIR/openstack-dashboard/quantum
-    touch $DASH_DIR/openstack-dashboard/quantum/__init__.py
-    touch $DASH_DIR/openstack-dashboard/quantum/client.py
-    # local_settings has 
-    cd $DASH_DIR/openstack-dashboard
-    cp local/local_settings.py.example local/local_settings.py
-    dashboard/manage.py syncdb
-
-    # # Setup Apache
-    # create an empty directory to use as our 
-    mkdir $DASH_DIR/.blackhole
-    # FIXME(ja): can't figure out how to make $DASH_DIR work in sed, also install to available/a2e it 
-    cat $DIR/files/000-default.template | sed 's/%DASH_DIR%/\/opt\/dash/g' > /etc/apache2/sites-enabled/000-default
-
-    chown -R www-data:www-data $DASH_DIR
-
-    mkdir -p /var/log/glance
-
-    # prepare initial images for loading into glance
-    if [ ! -f $DEST/tty.tgz ]; then
-        wget -c http://images.ansolabs.com/tty.tgz -O $DEST/tty.tgz
-    fi
-
-    mkdir -p $DEST/images
-    tar -C $DEST/images -zxf $DEST/tty.tgz
-
-    # add useful screenrc
-    cp $DIR/files/screenrc ~/.screenrc
-
-    # TODO: update current user to allow sudo for all commands in files/sudo/*
-    exit
+# if there is a partition labeled nova-instances use it (ext filesystems
+# can be labeled via e2label)
+if [ -L /dev/disk/by-label/nova-instances ]; then
+    mount -L nova-instances /$NOVA_DIR/instances
 fi
 
+# *Dashboard*: setup django application to serve via apache/wsgi
+
+# Dash currently imports quantum even if you aren't using it.  Instead 
+# of installing quantum we can create a simple module that will pass the 
+# initial imports
+mkdir $DASH_DIR/openstack-dashboard/quantum
+touch $DASH_DIR/openstack-dashboard/quantum/__init__.py
+touch $DASH_DIR/openstack-dashboard/quantum/client.py
+# local_settings has 
+cd $DASH_DIR/openstack-dashboard
+cp local/local_settings.py.example local/local_settings.py
+dashboard/manage.py syncdb
+
+# ## Setup Apache
+# create an empty directory to use as our 
+mkdir $DASH_DIR/.blackhole
+# FIXME(ja): can't figure out how to make $DASH_DIR work in sed, also install to available/a2e it 
+cat $DIR/files/000-default.template | sed 's/%DASH_DIR%/\/opt\/dash/g' > /etc/apache2/sites-enabled/000-default
+
+chown -R www-data:www-data $DASH_DIR
+
+mkdir -p /var/log/glance
+
+# prepare initial images for loading into glance
+if [ ! -f $DEST/tty.tgz ]; then
+    wget -c http://images.ansolabs.com/tty.tgz -O $DEST/tty.tgz
+fi
+
+mkdir -p $DEST/images
+tar -C $DEST/images -zxf $DEST/tty.tgz
+
+# add useful screenrc
+cp $DIR/files/screenrc ~/.screenrc
+
+# TODO: update current user to allow sudo for all commands in files/sudo/*
+
 NL=`echo -ne '\015'`
 
 function screen_it {
@@ -143,89 +138,71 @@
     echo "$1" >> $NOVA_DIR/bin/nova.conf
 }
 
-if [ "$CMD" == "run" ] || [ "$CMD" == "run_detached" ]; then
-
-    # (re)create nova.conf
-    rm -f $NOVA_DIR/bin/nova.conf
-    add_nova_flag "--verbose"
-    add_nova_flag "--nodaemon"
-    add_nova_flag "--dhcpbridge_flagfile=$NOVA_DIR/bin/nova.conf"
-    add_nova_flag "--network_manager=nova.network.manager.$NET_MAN"
-    add_nova_flag "--my_ip=$HOST_IP"
-    add_nova_flag "--public_interface=$INTERFACE"
-    add_nova_flag "--vlan_interface=$INTERFACE"
-    add_nova_flag "--sql_connection=$SQL_CONN"
-    add_nova_flag "--libvirt_type=$LIBVIRT_TYPE"
-    add_nova_flag "--osapi_extensions_path=$API_DIR/extensions"
-    add_nova_flag "--vncproxy_url=http://$HOST_IP:6080"
-    add_nova_flag "--vncproxy_wwwroot=$NOVNC_DIR/noVNC/noVNC"
-    add_nova_flag "--api_paste_config=$KEYSTONE_DIR/examples/paste/nova-api-paste.ini"
-    add_nova_flag "--image_service=nova.image.glance.GlanceImageService"
-    if [ -n "$FLAT_INTERFACE" ]; then
-        add_nova_flag "--flat_interface=$FLAT_INTERFACE"
-    fi
-
-    # create a new named screen to store things in
-    screen -d -m -S nova -t nova
-    sleep 1
-
-    # Clean out the instances directory
-    rm -rf $NOVA_DIR/instances/*
-
-    # delete traces of nova networks from prior runs
-    killall dnsmasq || true
-    rm -rf $NOVA_DIR/networks
-    mkdir -p $NOVA_DIR/networks
-
-    # (re)create nova database
-    rm -f $NOVA_DIR/nova.sqlite
-    $NOVA_DIR/bin/nova-manage db sync
-
-    # initialize keystone with default users/endpoints
-    # FIXME(ja): move initial_data.sh into this script
-    rm -f /opt/keystone/keystone.db
-    curl -OL https://raw.github.com/cloudbuilders/deploy.sh/master/initial_data.sh
-    BIN_DIR=$KEYSTONE_DIR/bin bash initial_data.sh
-
-    # create a small network
-    $NOVA_DIR/bin/nova-manage network create private $FIXED_RANGE 1 32
-
-    # create some floating ips
-    $NOVA_DIR/bin/nova-manage floating create $FLOATING_RANGE
-
-    # delete existing glance images/database.  Glance will recreate the db
-    # when it is ran.
-    rm -rf /var/lib/glance/images/*
-    rm -f $GLANCE_DIR/glance.sqlite
-
-    screen_it n-api "$NOVA_DIR/bin/nova-api"
-    screen_it g-api "cd $GLANCE_DIR; bin/glance-api --config-file=etc/glance-api.conf"
-    screen_it g-reg "cd $GLANCE_DIR; bin/glance-registry --config-file=etc/glance-registry.conf"
-    screen_it cpu "$NOVA_DIR/bin/nova-compute"
-    screen_it net "$NOVA_DIR/bin/nova-network"
-    screen_it sched "$NOVA_DIR/bin/nova-scheduler"
-    screen_it key "$KEYSTONE_DIR/bin/keystone --config-file $KEYSTONE_DIR/etc/keystone.conf"
-    screen_it vnc "$NOVA_DIR/bin/nova-vncproxy"
-    screen_it dash "/etc/init.d/apache2 restart; tail -f /var/log/apache2/error.log"
-
-    # FIXME: switch to just importing images
-    # remove previously converted images
-    rm -rf $DIR/images/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
-    $NOVA_DIR/bin/nova-manage image convert $DIR/images
-
-    if [ "$CMD" != "run_detached" ]; then
-      screen -S nova -x
-    fi
+# (re)create nova.conf
+rm -f $NOVA_DIR/bin/nova.conf
+add_nova_flag "--verbose"
+add_nova_flag "--nodaemon"
+add_nova_flag "--dhcpbridge_flagfile=$NOVA_DIR/bin/nova.conf"
+add_nova_flag "--network_manager=nova.network.manager.$NET_MAN"
+add_nova_flag "--my_ip=$HOST_IP"
+add_nova_flag "--public_interface=$INTERFACE"
+add_nova_flag "--vlan_interface=$INTERFACE"
+add_nova_flag "--sql_connection=$SQL_CONN"
+add_nova_flag "--libvirt_type=$LIBVIRT_TYPE"
+add_nova_flag "--osapi_extensions_path=$API_DIR/extensions"
+add_nova_flag "--vncproxy_url=http://$HOST_IP:6080"
+add_nova_flag "--vncproxy_wwwroot=$NOVNC_DIR/noVNC/noVNC"
+add_nova_flag "--api_paste_config=$KEYSTONE_DIR/examples/paste/nova-api-paste.ini"
+add_nova_flag "--image_service=nova.image.glance.GlanceImageService"
+if [ -n "$FLAT_INTERFACE" ]; then
+    add_nova_flag "--flat_interface=$FLAT_INTERFACE"
 fi
 
-if [ "$CMD" == "run" ] || [ "$CMD" == "terminate" ]; then
-    virsh list | grep i- | awk '{print $1}' | xargs -n1 virsh destroy
-    $NOVA_DIR/tools/clean-vlans
-    echo "FIXME: clean networks?"
-fi
+# create a new named screen to store things in
+screen -d -m -S nova -t nova
+sleep 1
 
-if [ "$CMD" == "run" ] || [ "$CMD" == "clean" ]; then
-    screen -S nova -X quit
-    rm -f *.pid*
-fi
+# Clean out the instances directory
+rm -rf $NOVA_DIR/instances/*
+
+# delete traces of nova networks from prior runs
+killall dnsmasq || true
+rm -rf $NOVA_DIR/networks
+mkdir -p $NOVA_DIR/networks
+
+# (re)create nova database
+rm -f $NOVA_DIR/nova.sqlite
+$NOVA_DIR/bin/nova-manage db sync
+
+# initialize keystone with default users/endpoints
+# FIXME(ja): move initial_data.sh into this script
+rm -f /opt/keystone/keystone.db
+curl -OL https://raw.github.com/cloudbuilders/deploy.sh/master/initial_data.sh
+BIN_DIR=$KEYSTONE_DIR/bin bash initial_data.sh
+
+# create a small network
+$NOVA_DIR/bin/nova-manage network create private $FIXED_RANGE 1 32
+
+# create some floating ips
+$NOVA_DIR/bin/nova-manage floating create $FLOATING_RANGE
+
+# delete existing glance images/database.  Glance will recreate the db
+# when it is ran.
+rm -rf /var/lib/glance/images/*
+rm -f $GLANCE_DIR/glance.sqlite
+
+screen_it n-api "$NOVA_DIR/bin/nova-api"
+screen_it g-api "cd $GLANCE_DIR; bin/glance-api --config-file=etc/glance-api.conf"
+screen_it g-reg "cd $GLANCE_DIR; bin/glance-registry --config-file=etc/glance-registry.conf"
+screen_it cpu "$NOVA_DIR/bin/nova-compute"
+screen_it net "$NOVA_DIR/bin/nova-network"
+screen_it sched "$NOVA_DIR/bin/nova-scheduler"
+screen_it key "$KEYSTONE_DIR/bin/keystone --config-file $KEYSTONE_DIR/etc/keystone.conf"
+screen_it vnc "$NOVA_DIR/bin/nova-vncproxy"
+screen_it dash "/etc/init.d/apache2 restart; tail -f /var/log/apache2/error.log"
+
+# FIXME: switch to just importing images
+# remove previously converted images
+rm -rf $DIR/images/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
+$NOVA_DIR/bin/nova-manage image convert $DIR/images
 
