diff --git a/.gitignore b/.gitignore
index c99ccc1..0c63853 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 /.vscode/
-/build/
\ No newline at end of file
+/build/
+bazel-*
diff --git a/BUILD.bazel b/BUILD.bazel
new file mode 100644
index 0000000..bcb5643
--- /dev/null
+++ b/BUILD.bazel
@@ -0,0 +1,54 @@
+# Copyright 2019 The Marl Authors.
+#
+# 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
+#
+#     https://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.
+
+cc_library(
+    name = "marl",
+    srcs = glob(
+        [
+            "src/**/*.cpp",
+            "src/**/*.c",
+            "src/**/*.h",
+        ],
+        exclude = glob([
+            "src/**/*_test.cpp",
+        ]),
+    ) + select({
+        "@bazel_tools//src/conditions:windows": [],
+        "//conditions:default": glob(["src/**/*.S"]),
+    }),
+    hdrs = glob([
+        "include/marl/**/*.h",
+    ]),
+    includes = [
+        "include",
+    ],
+    linkopts = select({
+        "@bazel_tools//src/conditions:linux_x86_64": ["-pthread"],
+        "//conditions:default": [],
+    }),
+    visibility = [
+        "//visibility:public",
+    ],
+)
+
+cc_test(
+    name = "tests",
+    srcs = glob([
+        "src/**/*_test.cpp",
+    ]),
+    deps = [
+        "//:marl",
+        "@googletest//:gtest",
+    ],
+)
diff --git a/WORKSPACE b/WORKSPACE
new file mode 100644
index 0000000..60425d6
--- /dev/null
+++ b/WORKSPACE
@@ -0,0 +1,18 @@
+# Copyright 2019 The Marl Authors.
+#
+# 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
+#
+#     https://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.
+
+local_repository(
+  name = "googletest",
+  path = "./third_party/googletest",
+)
diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel
new file mode 100644
index 0000000..5d68d73
--- /dev/null
+++ b/examples/BUILD.bazel
@@ -0,0 +1,33 @@
+# Copyright 2019 The Marl Authors.
+#
+# 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
+#
+#     https://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.
+
+cc_binary(
+  name = "fractal",
+  srcs = [
+    "fractal.cpp",
+  ],
+  deps = [
+    "//:marl",
+  ],
+)
+
+cc_binary(
+  name = "primes",
+  srcs = [
+    "primes.cpp",
+  ],
+  deps = [
+    "//:marl",
+  ],
+)
diff --git a/kokoro/linux/presubmit.cfg b/kokoro/linux/bazel/presubmit.cfg
similarity index 73%
rename from kokoro/linux/presubmit.cfg
rename to kokoro/linux/bazel/presubmit.cfg
index 131a77f..6568287 100644
--- a/kokoro/linux/presubmit.cfg
+++ b/kokoro/linux/bazel/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/linux/presubmit.sh"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "bazel"
+}
diff --git a/kokoro/linux/presubmit.cfg b/kokoro/linux/cmake/presubmit.cfg
similarity index 73%
copy from kokoro/linux/presubmit.cfg
copy to kokoro/linux/cmake/presubmit.cfg
index 131a77f..f377ee0 100644
--- a/kokoro/linux/presubmit.cfg
+++ b/kokoro/linux/cmake/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/linux/presubmit.sh"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "cmake"
+}
diff --git a/kokoro/linux/presubmit.sh b/kokoro/linux/presubmit.sh
index ae166f4..60bddbe 100755
--- a/kokoro/linux/presubmit.sh
+++ b/kokoro/linux/presubmit.sh
@@ -3,21 +3,39 @@
 set -e # Fail on any error.
 set -x # Display commands being run.
 
+BUILD_ROOT=$PWD
+
 cd github/marl
 
 git submodule update --init
 
-mkdir build
-cd build
+if [ "$BUILD_SYSTEM" == "cmake" ]; then
+    mkdir build
+    cd build
 
-build_and_run() {
-    cmake .. -DMARL_BUILD_EXAMPLES=1 -DMARL_BUILD_TESTS=1 -DMARL_WARNINGS_AS_ERRORS=1 $1
-    make --jobs=$(nproc)
+    build_and_run() {
+        cmake .. -DMARL_BUILD_EXAMPLES=1 -DMARL_BUILD_TESTS=1 -DMARL_WARNINGS_AS_ERRORS=1 $1
+        make --jobs=$(nproc)
 
-    ./marl-unittests
-    ./fractal
-}
+        ./marl-unittests
+        ./fractal
+        ./primes > /dev/null
+    }
 
-build_and_run ""
-build_and_run "-DMARL_ASAN=1"
-build_and_run "-DMARL_MSAN=1"
\ No newline at end of file
+    build_and_run ""
+    build_and_run "-DMARL_ASAN=1"
+    build_and_run "-DMARL_MSAN=1"
+elif [ "$BUILD_SYSTEM" == "bazel" ]; then
+    # Get bazel
+    curl -L -k -O -s https://github.com/bazelbuild/bazel/releases/download/0.29.1/bazel-0.29.1-installer-linux-x86_64.sh
+    mkdir $BUILD_ROOT/bazel
+    bash bazel-0.29.1-installer-linux-x86_64.sh --prefix=$BUILD_ROOT/bazel
+    rm bazel-0.29.1-installer-linux-x86_64.sh
+    # Build and run
+    $BUILD_ROOT/bazel/bin/bazel test //:tests
+    $BUILD_ROOT/bazel/bin/bazel run //examples:fractal
+    $BUILD_ROOT/bazel/bin/bazel run //examples:primes > /dev/null
+else
+    echo "Unknown build system: $BUILD_SYSTEM"
+    exit 1
+fi
\ No newline at end of file
diff --git a/kokoro/macos/presubmit.cfg b/kokoro/macos/bazel/presubmit.cfg
similarity index 73%
rename from kokoro/macos/presubmit.cfg
rename to kokoro/macos/bazel/presubmit.cfg
index 009e936..c897fb3 100644
--- a/kokoro/macos/presubmit.cfg
+++ b/kokoro/macos/bazel/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/macos/presubmit.sh"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "bazel"
+}
diff --git a/kokoro/macos/presubmit.cfg b/kokoro/macos/cmake/presubmit.cfg
similarity index 73%
copy from kokoro/macos/presubmit.cfg
copy to kokoro/macos/cmake/presubmit.cfg
index 009e936..aa023a9 100644
--- a/kokoro/macos/presubmit.cfg
+++ b/kokoro/macos/cmake/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/macos/presubmit.sh"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "cmake"
+}
diff --git a/kokoro/macos/presubmit.sh b/kokoro/macos/presubmit.sh
index 3d1b775..ea97913 100755
--- a/kokoro/macos/presubmit.sh
+++ b/kokoro/macos/presubmit.sh
@@ -3,15 +3,34 @@
 set -e # Fail on any error.
 set -x # Display commands being run.
 
+BUILD_ROOT=$PWD
+
 cd github/marl
 
 git submodule update --init
 
-mkdir build
-cd build
-cmake .. -DMARL_BUILD_EXAMPLES=1 -DMARL_BUILD_TESTS=1 -DMARL_WARNINGS_AS_ERRORS=1
-make -j$(sysctl -n hw.logicalcpu)
+if [ "$BUILD_SYSTEM" == "cmake" ]; then
+    mkdir build
+    cd build
 
-./marl-unittests
+    cmake .. -DMARL_BUILD_EXAMPLES=1 -DMARL_BUILD_TESTS=1 -DMARL_WARNINGS_AS_ERRORS=1
+    make -j$(sysctl -n hw.logicalcpu)
 
-./fractal
+    ./marl-unittests
+
+    ./fractal
+    ./primes > /dev/null
+elif [ "$BUILD_SYSTEM" == "bazel" ]; then
+    # Get bazel
+    curl -L -k -O -s https://github.com/bazelbuild/bazel/releases/download/0.29.1/bazel-0.29.1-installer-darwin-x86_64.sh
+    mkdir $BUILD_ROOT/bazel
+    sh bazel-0.29.1-installer-darwin-x86_64.sh --prefix=$BUILD_ROOT/bazel
+    rm bazel-0.29.1-installer-darwin-x86_64.sh
+    # Build and run
+    $BUILD_ROOT/bazel/bin/bazel test //:tests
+    $BUILD_ROOT/bazel/bin/bazel run //examples:fractal
+    $BUILD_ROOT/bazel/bin/bazel run //examples:primes > /dev/null
+else
+    echo "Unknown build system: $BUILD_SYSTEM"
+    exit 1
+fi
\ No newline at end of file
diff --git a/kokoro/windows/presubmit.cfg b/kokoro/windows/bazel/presubmit.cfg
similarity index 73%
rename from kokoro/windows/presubmit.cfg
rename to kokoro/windows/bazel/presubmit.cfg
index d580a41..ef6acd8 100644
--- a/kokoro/windows/presubmit.cfg
+++ b/kokoro/windows/bazel/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/windows/presubmit.bat"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "bazel"
+}
diff --git a/kokoro/windows/presubmit.cfg b/kokoro/windows/cmake/presubmit.cfg
similarity index 73%
copy from kokoro/windows/presubmit.cfg
copy to kokoro/windows/cmake/presubmit.cfg
index d580a41..72d1734 100644
--- a/kokoro/windows/presubmit.cfg
+++ b/kokoro/windows/cmake/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/windows/presubmit.bat"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "cmake"
+}
diff --git a/kokoro/windows/presubmit.bat b/kokoro/windows/presubmit.bat
index 504ad8c..9c15406 100644
--- a/kokoro/windows/presubmit.bat
+++ b/kokoro/windows/presubmit.bat
@@ -2,30 +2,62 @@
 
 SETLOCAL ENABLEDELAYEDEXPANSION
 
+SET BUILD_ROOT=%cd%
 SET PATH=C:\python36;C:\Program Files\cmake\bin;%PATH%
-set SRC=%cd%\github\marl
+SET SRC=%cd%\github\marl
 
 cd %SRC%
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
 
 git submodule update --init
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
 
 SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild"
 SET CONFIG=Release
 
 mkdir %SRC%\build
 cd %SRC%\build
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
 
-cmake .. -G "Visual Studio 15 2017 Win64" -Thost=x64 "-DMARL_BUILD_TESTS=1" "-DMARL_BUILD_EXAMPLES=1" "-DMARL_WARNINGS_AS_ERRORS=1"
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+IF /I "%BUILD_SYSTEM%"=="cmake" (
+    cmake .. -G "Visual Studio 15 2017 Win64" -Thost=x64 "-DMARL_BUILD_TESTS=1" "-DMARL_BUILD_EXAMPLES=1" "-DMARL_WARNINGS_AS_ERRORS=1"
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    %MSBUILD% /p:Configuration=%CONFIG% Marl.sln
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    Release\marl-unittests.exe
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    Release\fractal.exe
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    Release\primes.exe > nul
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+) ELSE IF /I "%BUILD_SYSTEM%"=="bazel" (
+    REM Fix up the MSYS environment.
+    wget -q http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-7.3.0-2-any.pkg.tar.xz
+    wget -q http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-libs-7.3.0-2-any.pkg.tar.xz
+    c:\tools\msys64\usr\bin\bash --login -c "pacman -R --noconfirm catgets libcatgets"
+    c:\tools\msys64\usr\bin\bash --login -c "pacman -Syu --noconfirm"
+    c:\tools\msys64\usr\bin\bash --login -c "pacman -Sy --noconfirm mingw-w64-x86_64-crt-git patch"
+    c:\tools\msys64\usr\bin\bash --login -c "pacman -U --noconfirm mingw-w64-x86_64-gcc*-7.3.0-2-any.pkg.tar.xz"
+    set PATH=C:\tools\msys64\mingw64\bin;c:\tools\msys64\usr\bin;!PATH!
+    set BAZEL_SH=C:\tools\msys64\usr\bin\bash.exe
 
-%MSBUILD% /p:Configuration=%CONFIG% Marl.sln
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+    REM Install Bazel
+    SET BAZEL_DIR=!BUILD_ROOT!\bazel
+    mkdir !BAZEL_DIR!
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    wget -q https://github.com/bazelbuild/bazel/releases/download/0.29.1/bazel-0.29.1-windows-x86_64.zip
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    unzip -q bazel-0.29.1-windows-x86_64.zip -d !BAZEL_DIR!
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
 
-Release\marl-unittests.exe
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
-
-Release\fractal.exe
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+    REM Build and run
+    !BAZEL_DIR!\bazel test //:tests --test_output=all
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    !BAZEL_DIR!\bazel run //examples:fractal
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    !BAZEL_DIR!\bazel run //examples:primes > nul
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+) ELSE (
+    echo "Unknown build system: %BUILD_SYSTEM%"
+    exit /b 1
+)
diff --git a/src/osfiber_asm_aarch64.S b/src/osfiber_asm_aarch64.S
index 1fa08d9..04db6de 100644
--- a/src/osfiber_asm_aarch64.S
+++ b/src/osfiber_asm_aarch64.S
@@ -44,6 +44,7 @@
     str x26, [x0, #MARL_REG_r26]
     str x27, [x0, #MARL_REG_r27]
     str x28, [x0, #MARL_REG_r28]
+    str x29, [x0, #MARL_REG_r29]
 
     str d8,  [x0, #MARL_REG_v8]
     str d9,  [x0, #MARL_REG_v9]
@@ -78,6 +79,7 @@
     ldr x26, [x7, #MARL_REG_r26]
     ldr x27, [x7, #MARL_REG_r27]
     ldr x28, [x7, #MARL_REG_r28]
+    ldr x29, [x7, #MARL_REG_r29]
 
     ldr d8,  [x7, #MARL_REG_v8]
     ldr d9,  [x7, #MARL_REG_v9]
diff --git a/src/osfiber_asm_aarch64.h b/src/osfiber_asm_aarch64.h
index ccd19ef..c50d742 100644
--- a/src/osfiber_asm_aarch64.h
+++ b/src/osfiber_asm_aarch64.h
@@ -27,16 +27,17 @@
 #define MARL_REG_r26 0x60
 #define MARL_REG_r27 0x68
 #define MARL_REG_r28 0x70
-#define MARL_REG_v8 0x78
-#define MARL_REG_v9 0x80
-#define MARL_REG_v10 0x88
-#define MARL_REG_v11 0x90
-#define MARL_REG_v12 0x98
-#define MARL_REG_v13 0xa0
-#define MARL_REG_v14 0xa8
-#define MARL_REG_v15 0xb0
-#define MARL_REG_SP 0xb8
-#define MARL_REG_LR 0xc0
+#define MARL_REG_r29 0x78
+#define MARL_REG_v8 0x80
+#define MARL_REG_v9 0x88
+#define MARL_REG_v10 0x90
+#define MARL_REG_v11 0x98
+#define MARL_REG_v12 0xa0
+#define MARL_REG_v13 0xa8
+#define MARL_REG_v14 0xb0
+#define MARL_REG_v15 0xb8
+#define MARL_REG_SP 0xc0
+#define MARL_REG_LR 0xc8
 
 #if defined(__APPLE__)
 #define MARL_ASM_SYMBOL(x) _##x
@@ -71,6 +72,7 @@
   uintptr_t r26;
   uintptr_t r27;
   uintptr_t r28;
+  uintptr_t r29;
 
   uintptr_t v8;
   uintptr_t v9;
@@ -117,6 +119,8 @@
               "Bad register offset");
 static_assert(offsetof(marl_fiber_context, r28) == MARL_REG_r28,
               "Bad register offset");
+static_assert(offsetof(marl_fiber_context, r29) == MARL_REG_r29,
+              "Bad register offset");
 static_assert(offsetof(marl_fiber_context, v8) == MARL_REG_v8,
               "Bad register offset");
 static_assert(offsetof(marl_fiber_context, v9) == MARL_REG_v9,
diff --git a/src/scheduler.cpp b/src/scheduler.cpp
index 09771ac..1a08d8f 100644
--- a/src/scheduler.cpp
+++ b/src/scheduler.cpp
@@ -408,7 +408,7 @@
     std::unique_lock<std::mutex>& lock) {
   MARL_ASSERT(work.num == work.fibers.size() + work.tasks.size(),
               "work.num out of sync");
-  if (work.num == 0) {
+  if (work.num == 0 && mode == Mode::MultiThreaded) {
     scheduler->onBeginSpinning(id);
     lock.unlock();
     spinForWork();
diff --git a/src/scheduler_test.cpp b/src/scheduler_test.cpp
index c0c5055..1f0562a 100644
--- a/src/scheduler_test.cpp
+++ b/src/scheduler_test.cpp
@@ -14,8 +14,11 @@
 
 #include "marl_test.h"
 
+#include "marl/defer.h"
 #include "marl/waitgroup.h"
 
+#include <unordered_set>
+
 TEST(WithoutBoundScheduler, SchedulerConstructAndDestruct) {
   auto scheduler = new marl::Scheduler();
   delete scheduler;
@@ -102,4 +105,27 @@
   for (auto& thread : threads) {
     thread.join();
   }
+}
+
+TEST(WithoutBoundScheduler, TasksOnlyScheduledOnWorkerThreads) {
+  auto scheduler = std::unique_ptr<marl::Scheduler>(new marl::Scheduler());
+  scheduler->bind();
+  scheduler->setWorkerThreadCount(8);
+  std::mutex mutex;
+  std::unordered_set<std::thread::id> threads;
+  marl::WaitGroup wg;
+  for (int i = 0; i < 10000; i++) {
+    wg.add(1);
+    marl::schedule([&mutex, &threads, wg] {
+      defer(wg.done());
+      std::unique_lock<std::mutex> lock(mutex);
+      threads.emplace(std::this_thread::get_id());
+    });
+  }
+  wg.wait();
+
+  ASSERT_EQ(threads.size(), 8U);
+  ASSERT_EQ(threads.count(std::this_thread::get_id()), 0U);
+
+  scheduler->unbind();
 }
\ No newline at end of file
