diff --git a/v14/automation/clients/test_client.py b/v14/automation/clients/test_client.py
index cb5695d..e8447f5 100755
--- a/v14/automation/clients/test_client.py
+++ b/v14/automation/clients/test_client.py
@@ -22,10 +22,17 @@
                     "--toolchain",
                     dest="toolchain",
                     default="trunk",
-                    help="Toolchain to use {trunk|branch|custom}"
+                    help="Toolchain to use {trunk|branch}"
+                    )
+  parser.add_option("-b",
+                    "--board",
+                    dest="board",
+                    default="x86-generic",
+                    help="Toolchain to use {trunk|branch}"
                     )
   parser.add_option("-p",
                     "--p4-snapshot",
+                    dest="p4_snapshot",
                     default="",
                     help="An existing perforce checkout for debugging."
                     )
@@ -34,7 +41,8 @@
   server = xmlrpclib.Server("http://localhost:8000")
 
   all_jobs = []
-  tc_job = jobs_helper.CreateBuildTCJob(p4_snapshot=options.p4_snapshot)
+  tc_job = jobs_helper.CreateBuildTCJob(p4_snapshot=options.p4_snapshot,
+                                        toolchain=options.toolchain)
   all_jobs.append(tc_job)
 
   versions = options.chromeos_versions
diff --git a/v14/automation/clients/update_client.py b/v14/automation/clients/update_client.py
new file mode 100644
index 0000000..90e2b85
--- /dev/null
+++ b/v14/automation/clients/update_client.py
@@ -0,0 +1,40 @@
+import sys
+from utils import utils
+import xmlrpclib
+from automation.common import job
+from automation.common import job_group
+from automation.common import jobs_helper
+import optparse
+import os
+
+
+def Main(argv):
+  """The main function."""
+  parser = optparse.OptionParser()
+  parser.add_option("-c",
+                    "--chromeos-version",
+                    dest="chromeos_version",
+                    default="weekly",
+                    help=("Update what version of chromeos.")
+                    )
+  parser.add_option("-l",
+                    "--location",
+                    dest="location",
+                    default="/home/asharif/chromeos_checkouts/",
+                    help="Location of the checkouts directory."
+                    )
+  options = parser.parse_args(argv)[0]
+
+  server = xmlrpclib.Server("http://localhost:8000")
+
+  all_jobs = []
+  update_job = jobs_helper.CreateUpdateJob(options.chromeos_version,
+                                           options.location)
+  all_jobs.append(update_job)
+
+  group = job_group.JobGroup(os.uname()[1], "/tmp/", all_jobs, False, False)
+  server.ExecuteJobGroup(utils.Serialize(group))
+
+if __name__ == "__main__":
+  Main(sys.argv)
+
diff --git a/v14/automation/common/jobs_helper.py b/v14/automation/common/jobs_helper.py
index 45b5325..9c6d92f 100755
--- a/v14/automation/common/jobs_helper.py
+++ b/v14/automation/common/jobs_helper.py
@@ -3,6 +3,7 @@
 import os
 import re
 import sys
+import time
 
 p4_checkout_dir = "perforce2"
 version_dir = "/gcctools/chromeos/v14/"
@@ -90,16 +91,27 @@
 
 def CreateBuildTCJob(chromeos_version="top",
                      board="x86-generic",
-                     p4_snapshot=""):
+                     p4_snapshot="",
+                     toolchain="trunk"):
   p4_port = "perforce2:2666"
   p4_paths = []
   p4_paths.append(("//depot2/gcctools/chromeos/v14/...", "gcctools/chromeos/v14/..."))
-  p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/...",
-                   "gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/..."))
-  p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/...",
-                   "gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/..."))
-  p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/binutils/binutils-20100303/...",
-                   "gcctools/google_vendor_src_branch/binutils/binutils-20100303/..."))
+  if toolchain == "trunk":
+    toolchain_root = p4_checkout_dir + "/gcctools"
+    p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/...",
+                     "gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/..."))
+    p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/...",
+                     "gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/..."))
+    p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/binutils/binutils-20100303/...",
+                     "gcctools/google_vendor_src_branch/binutils/binutils-20100303/..."))
+  elif toolchain == "branch":
+    toolchain_root = p4_checkout_dir + "/branches/chromeos_toolchain_v1_release_branch/gcctools"
+    p4_paths.append(("//depot2/branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/...",
+                     "branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/..."))
+    p4_paths.append(("//depot2/branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/...",
+                     "branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/..."))
+    p4_paths.append(("//depot2/branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/binutils/binutils-20100303/...",
+                     "branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/binutils/binutils-20100303/..."))
   p4_revision = 1
 
   command = GetInitialCommand()
@@ -107,9 +119,9 @@
                                  p4_revision, p4_checkout_dir, p4_snapshot)
 
   if chromeos_version == "weekly":
-    command += "; sudo cp -rp " + GetWeeklyChromeOSLocation() + " chromeos"
+    command += "; cp -rp " + GetWeeklyChromeOSLocation() + " chromeos"
   elif chromeos_version == "quarterly":
-    command += " ; sudo cp -rp " + GetQuarterlyChromeOSLocation() + " chromeos"
+    command += " ; cp -rp " + GetQuarterlyChromeOSLocation() + " chromeos"
   elif (chromeos_version == "top" or chromeos_version == "latest" or
         re.match("^\d\.\d\.\d\.\d$", chromeos_version)):
     command += ("; " + p4_version_dir + "/setup_chromeos.py" +
@@ -117,10 +129,11 @@
                 " --version=" + chromeos_version +
                 " --minilayout")
   else:
-    command += "; sudo cp -rp " + chromeos_version + " chromeos"
+    command += "; cp -rp " + chromeos_version + " chromeos"
+
 
   command += ("; " + p4_version_dir + "/build_tc.py" +
-                      " --toolchain_root=" + p4_checkout_dir + "/gcctools" +
+                      " --toolchain_root=" + toolchain_root +
                       " --chromeos_root=" + chromeos_root +
                       " --board=" + board +
                       " -f")
@@ -136,16 +149,16 @@
   command += "; " + GetP4VersionDirCommand(p4_snapshot)
 
   if chromeos_version == "weekly":
-    command += "; sudo cp -rp " + GetWeeklyChromeOSLocation() + " chromeos"
+    command += "; cp -rp " + GetWeeklyChromeOSLocation() + " chromeos"
   elif chromeos_version == "quarterly":
-    command += " sudo cp -rp " + GetQuarterlyChromeOSLocation() + " chromeos"
+    command += " cp -rp " + GetQuarterlyChromeOSLocation() + " chromeos"
   elif (chromeos_version == "top" or chromeos_version == "latest" or
         re.match("^\d\.\d\.\d\.\d$", chromeos_version)):
     command += ("; " + p4_version_dir + "/setup_chromeos.py" +
                 " --dir=" + chromeos_root +
                 " --version=" + chromeos_version)
   else:
-    command += "; sudo cp -rp " + chromeos_version + " chromeos"
+    command += "; cp -rp " + chromeos_version + " chromeos"
 
   command += ("; " + p4_version_dir + "/build_tc.py" +
                       " --toolchain_root=" + p4_checkout_dir + "/gcctools" +
@@ -163,7 +176,8 @@
   command += ("; " + p4_version_dir + "/run_tests.py" + 
               " --remote=$SECONDARY_MACHINES[0] " +
               " --chromeos_root=" + chromeos_root +
-              " --board=" + board)
+              " --board=" + board +
+              " bvt Page")
 
   to_return = CreateLinuxJob(command)
   to_return.AddRequiredFolder(tc_job, p4_pkgs_dir, p4_pkgs_dir)
@@ -180,3 +194,19 @@
   to_return.AddRequiredFolder(p4_job, p4_version_dir, p4_version_dir)
   return to_return
 
+def CreateUpdateJob(chromeos_version="weekly",
+                    location="/home/asharif/chromeos_checkouts/",
+                    p4_snapshot=""):
+  command = GetInitialCommand()
+  dirname = time.asctime()
+  dirname = dirname.replace(" ", "-")
+  command += "; " + GetP4VersionDirCommand(p4_snapshot)
+  command += "; mkdir -p " + location
+  command += ("; " + p4_version_dir + "/setup_chromeos.py" +
+              " --dir=" + location + "/chromeos." + dirname +
+              " --version=latest")
+  command += (" && ln -s -T chromeos." + dirname + " " +
+              location + "/weekly")
+  to_return = CreateLinuxJob(command)
+  return to_return
+
diff --git a/v14/run_tests.py b/v14/run_tests.py
index 54a144f..2f3f2fd 100755
--- a/v14/run_tests.py
+++ b/v14/run_tests.py
@@ -25,7 +25,7 @@
   parser.add_option("-b", "--board", dest="board",
                     help="The board of the target.")
 
-  tests = "BuildVerify"
+  tests = "bvt"
 
   (options, args) = parser.parse_args()
 
@@ -36,7 +36,8 @@
   if options.chromeos_root is None:
     options.chromeos_root = "../.."
 
-  tests += " " + " ".join(args)
+  if args:
+    tests = " " + " ".join(args)
   return RunRemoteTests(options.chromeos_root, options.remote,
                         options.board, tests)
 
