diff --git a/run_tests.py b/kong/run_tests.py
similarity index 100%
rename from run_tests.py
rename to kong/run_tests.py
diff --git a/kong/run_tests.sh b/kong/run_tests.sh
new file mode 100755
index 0000000..4010fcd
--- /dev/null
+++ b/kong/run_tests.sh
@@ -0,0 +1,93 @@
+#!/bin/bash
+
+function usage {
+  echo "Usage: $0 [OPTION]..."
+  echo "Run the Kong test suite(s)"
+  echo ""
+  echo "  -V, --virtual-env        Always use virtualenv.  Install automatically if not present"
+  echo "  -N, --no-virtual-env     Don't use virtualenv.  Run tests in local environment"
+  echo "  -f, --force              Force a clean re-build of the virtual environment. Useful when dependencies have been added."
+  echo "  -p, --pep8               Just run pep8"
+  echo "  --nova		   Run all tests tagged as \"nova\"."
+  echo "  --swift		   Run all tests tagged as \"swift\"."
+  echo "  --glance		   Run all tests tagged as \"glance\"."
+  echo "  -h, --help               Print this usage message"
+  echo ""
+  echo "Note: with no options specified, the script will try to run the tests in a virtual environment,"
+  echo "      If no virtualenv is found, the script will ask if you would like to create one.  If you "
+  echo "      prefer to run tests NOT in a virtual environment, simply pass the -N option."
+  exit
+}
+
+function process_option {
+  case "$1" in
+    -h|--help) usage;;
+    -V|--virtual-env) let always_venv=1; let never_venv=0;;
+    -N|--no-virtual-env) let always_venv=0; let never_venv=1;;
+    -f|--force) let force=1;;
+    -p|--pep8) let just_pep8=1;;
+    --nova) noseargs="$noseargs -a tags=nova";;
+    --glance) noseargs="$noseargs -a tags=glance";;
+    --swift) noseargs="$noseargs -a tags=swift";;
+    *) noseargs="$noseargs $1"
+  esac
+}
+
+venv=.kong-venv
+with_venv=tools/with_venv.sh
+always_venv=0
+never_venv=0
+force=0
+noseargs=
+wrapper=""
+just_pep8=0
+
+for arg in "$@"; do
+  process_option $arg
+done
+
+function run_tests {
+  # Just run the test suites in current environment
+  ${wrapper} $NOSETESTS 2> run_tests.err.log
+}
+
+function run_pep8 {
+  echo "Running pep8 ..."
+  PEP8_EXCLUDE=vcsversion.y
+  PEP8_OPTIONS="--exclude=$PEP8_EXCLUDE --repeat --show-pep8 --show-source"
+  PEP8_INCLUDE="tests tools run_tests.py"
+  ${wrapper} pep8 $PEP8_OPTIONS $PEP8_INCLUDE || exit 1
+}
+NOSETESTS="env python run_tests.py $noseargs"
+
+if [ $never_venv -eq 0 ]
+then
+  # Remove the virtual environment if --force used
+  if [ $force -eq 1 ]; then
+    echo "Cleaning virtualenv..."
+    rm -rf ${venv}
+  fi
+  if [ -e ${venv} ]; then
+    wrapper="${with_venv}"
+  else
+    if [ $always_venv -eq 1 ]; then
+      # Automatically install the virtualenv
+      use_ve='y'
+    else
+      echo -e "No virtual environment found...create one? (Y/n) \c"
+      read use_ve
+    fi
+    if [ "x$use_ve" = "xY" -o "x$use_ve" = "x" -o "x$use_ve" = "xy" ]; then
+        # Install the virtualenv and run the test suite in it
+        env python ../tools/install_venv.py
+        wrapper=${with_venv}
+    fi
+  fi
+fi
+
+if [ $just_pep8 -eq 1 ]; then
+    run_pep8
+    exit
+fi
+
+run_tests || exit
diff --git a/run_tests.sh b/run_tests.sh
index e121133..5ff837e 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -1,94 +1,41 @@
 #!/bin/bash
 
 function usage {
-  echo "Usage: $0 [OPTION]..."
-  echo "Run the Kong test suite(s)"
+  echo "Usage: [OPTIONS] [SUITES]"
+  echo "Run all of the test suites"
   echo ""
-  echo "  -V, --virtual-env        Always use virtualenv.  Install automatically if not present"
-  echo "  -N, --no-virtual-env     Don't use virtualenv.  Run tests in local environment"
-  echo "  -f, --force              Force a clean re-build of the virtual environment. Useful when dependencies have been added."
-  echo "  -p, --pep8               Just run pep8"
-  echo "  --nova		   Run all tests tagged as \"nova\"."
-  echo "  --swift		   Run all tests tagged as \"swift\"."
-  echo "  --glance		   Run all tests tagged as \"glance\"."
   echo "  -h, --help               Print this usage message"
   echo ""
-  echo "Note: with no options specified, the script will try to run the tests in a virtual environment,"
-  echo "      If no virtualenv is found, the script will ask if you would like to create one.  If you "
-  echo "      prefer to run tests NOT in a virtual environment, simply pass the -N option."
+  echo "  The suites should be listed by the name of their directory."
+  echo "  All other options are passed directly to the suites."
   exit
 }
 
 function process_option {
   case "$1" in
     -h|--help) usage;;
-    -V|--virtual-env) let always_venv=1; let never_venv=0;;
-    -N|--no-virtual-env) let always_venv=0; let never_venv=1;;
-    -f|--force) let force=1;;
-    -p|--pep8) let just_pep8=1;;
-    --nova) noseargs="$noseargs -a tags=nova";;
-    --glance) noseargs="$noseargs -a tags=glance";;
-    --swift) noseargs="$noseargs -a tags=swift";;
-    *) noseargs="$noseargs $1"
+    -*|--*) test_opts="$test_opts $1";;
+    *) tests="$tests $1"
   esac
 }
 
-venv=.kong-venv
-with_venv=tools/with_venv.sh
-always_venv=0
-never_venv=0
-force=0
-noseargs=
-wrapper=""
-just_pep8=0
-
 for arg in "$@"; do
   process_option $arg
 done
 
+echo $test_opts
+
 function run_tests {
-  # Just run the test suites in current environment
-  ${wrapper} $NOSETESTS 2> run_tests.err.log
+  for test_dir in $tests
+  do
+    cd $test_dir
+    test_cmd="./run_tests.sh ${test_opts}"
+    echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+    echo $test_cmd
+    echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+    $test_cmd
+    cd ..
+  done
 }
 
-function run_pep8 {
-  echo "Running pep8 ..."
-  PEP8_EXCLUDE=vcsversion.y
-  PEP8_OPTIONS="--exclude=$PEP8_EXCLUDE --repeat --show-pep8 --show-source"
-  PEP8_INCLUDE="tests tools run_tests.py"
-  ${wrapper} pep8 $PEP8_OPTIONS $PEP8_INCLUDE || exit 1
-}
-NOSETESTS="env python run_tests.py $noseargs"
-
-if [ $never_venv -eq 0 ]
-then
-  # Remove the virtual environment if --force used
-  if [ $force -eq 1 ]; then
-    echo "Cleaning virtualenv..."
-    rm -rf ${venv}
-  fi
-  if [ -e ${venv} ]; then
-    wrapper="${with_venv}"
-  else
-    if [ $always_venv -eq 1 ]; then
-      # Automatically install the virtualenv
-      env python tools/install_venv.py
-      wrapper="${with_venv}"
-    else
-      echo -e "No virtual environment found...create one? (Y/n) \c"
-      read use_ve
-      if [ "x$use_ve" = "xY" -o "x$use_ve" = "x" -o "x$use_ve" = "xy" ]; then
-        # Install the virtualenv and run the test suite in it
-        env python tools/install_venv.py
-                    wrapper=${with_venv}
-      fi
-    fi
-  fi
-fi
-
-if [ $just_pep8 -eq 1 ]; then
-    run_pep8
-    exit
-fi
-
 run_tests || exit
