diff --git a/tracker/webcomponentspage.py b/tracker/webcomponentspage.py
index eadd983..e9afa70 100644
--- a/tracker/webcomponentspage.py
+++ b/tracker/webcomponentspage.py
@@ -1,7 +1,6 @@
-# Copyright 2018 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file or at
-# https://developers.google.com/open-source/licenses/bsd
+# Copyright 2018 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
 
 """Classes that implement a web components page.
 
@@ -16,11 +15,9 @@
 import logging
 
 import settings
-from framework import flaskservlet
-from framework import servlet
-from framework import framework_helpers
+from framework import exceptions
 from framework import permissions
-from framework import urls
+from framework import servlet
 
 
 class WebComponentsPage(servlet.Servlet):
@@ -57,21 +54,27 @@
         old_ui_url = '/u/%s/hotlists/%s' % (hotlist.owner_ids[0], hotlist.name)
 
     return {
-       'local_id': mr.local_id,
-       'old_ui_url': old_ui_url,
-      }
+        'local_id': mr.local_id,
+        'old_ui_url': old_ui_url,
+    }
 
-  # def GetWebComponentsIssueDetail(self, **kwargs):
-  #   return self.handler(**kwargs)
+  def GetWebComponentsIssueDetail(self, **kwargs):
+    return self.handler(**kwargs)
 
-  # def GetWebComponentsIssueList(self, **kwargs):
-  #   return self.handler(**kwargs)
+  def GetWebComponentsIssueList(self, **kwargs):
+    return self.handler(**kwargs)
 
-  # def GetWebComponentsIssueWizard(self, **kwargs):
-  #   return self.handler(**kwargs)
+  def GetWebComponentsIssueWizard(self, **kwargs):
+    return self.handler(**kwargs)
 
-  # def GetWebComponentsIssueNewEntry(self, **kwargs):
-  #   return self.handler(**kwargs)
+  def GetWebComponentsIssueNewEntry(self, **kwargs):
+    return self.handler(**kwargs)
+
+  def GetWebComponentsHotlist(self, **kwargs):
+    return self.handler(**kwargs)
+
+  def GetWebComponentsUser(self, **kwargs):
+    return self.handler(**kwargs)
 
 
 class ProjectListPage(WebComponentsPage):
@@ -126,5 +129,7 @@
       return 'User cannot view default project: %r' % project
 
     project_url = '/p/%s' % project_name
-    self.redirect(project_url, abort=True)
-    return 'Redirected to %r' % project_url
+    raise exceptions.RedirectException(project_url)
+
+  def GetProjectListPage(self, **kwargs):
+    return self.handler(**kwargs)
