diff --git a/maintainers/obmc-gerrit b/maintainers/obmc-gerrit
index b666652..c6636e5 100755
--- a/maintainers/obmc-gerrit
+++ b/maintainers/obmc-gerrit
@@ -8,7 +8,8 @@
 # it exists).
 
 from obmc import maintainers
-from typing import cast, Callable, List, Optional, Tuple
+from obmc.reviewlist import ReviewList
+from typing import cast, Callable, List, Optional
 import argparse
 import os
 import sh  # type: ignore
@@ -19,9 +20,8 @@
 
 def get_reviewers(
     root: Optional[str] = None, mname: str = "MAINTAINERS"
-) -> Tuple[List[str], List[str]]:
-    maints: List[str] = list()
-    reviewers: List[str] = list()
+) -> ReviewList:
+
     if not root:
         root = git("rev-parse", "--show-toplevel").strip()
 
@@ -29,7 +29,7 @@
     if os.path.exists(mfile):
         return maintainers.get_reviewers(mfile)
 
-    return (maints, reviewers)
+    return ReviewList()
 
 
 def gerrit_refspec_args(
@@ -48,8 +48,8 @@
 
 
 def decorate_refspec(refspec: str, topic: str) -> str:
-    (maintainers, reviewers) = get_reviewers()
-    gargs = gerrit_refspec_args(maintainers, reviewers, topic)
+    revlist = get_reviewers()
+    gargs = gerrit_refspec_args(revlist.maintainers, revlist.reviewers, topic)
     if not gargs:
         return refspec
     if "%" in refspec:
@@ -69,8 +69,8 @@
 
 
 def do_reviewers(args: argparse.Namespace) -> None:
-    (maintainers, reviewers) = get_reviewers()
-    print(gerrit_refspec_args(maintainers, reviewers))
+    revlist = get_reviewers()
+    print(gerrit_refspec_args(revlist.maintainers, revlist.reviewers))
 
 
 parser = argparse.ArgumentParser()
