diff --git a/src/main.jsx b/src/main.jsx
index 0e5cf2b..c24105a 100644
--- a/src/main.jsx
+++ b/src/main.jsx
@@ -61,22 +61,20 @@ if (Session.isLoggedIn()) {
  *
  * @return {Promise}        data containing responses mapped by route name
  */
-let fetchData = function(routes, params) {
+let fetchData = async function(routes, params) {
   let data = {};
 
-  return Promise.all(routes
-    .filter(route => route.handler.fetchData)
-    .map(route => {
-      return route.handler.fetchData(params).then(resp => {
-        data[route.name] = resp;
-      })
-    })
-  ).then(() => data);
+  await Promise.all(routes.map(async route => {
+    if(!route.handler.fetchData) return;
+    data[route.name] = await route.handler.fetchData(params);
+  }));
+
+  return data;
 }
 
 // Start the router
-Router.run(routes, Router.HistoryLocation, function(Handler, state) {
-  fetchData(state.routes, state.params).then((data) => {
-    React.render(, document.getElementById(DOM_APP_EL_ID));
-  });
+Router.run(routes, async function(Handler, state) {
+  let data = await fetchData(state.routes, state.params);
+  React.render(, document.getElementById(DOM_APP_EL_ID));
 });
+