diff --git a/maintainers/obmc-gerrit b/maintainers/obmc-gerrit
index db6bcfe..b666652 100755
--- a/maintainers/obmc-gerrit
+++ b/maintainers/obmc-gerrit
@@ -24,23 +24,11 @@
     reviewers: List[str] = list()
     if not root:
         root = git("rev-parse", "--show-toplevel").strip()
+
     mfile = os.path.join(root, mname)
-    if not os.path.exists(mfile):
-        return (maints, reviewers)
-    with open(mfile, "r") as mstream:
-        maintainers.trash_preamble(mstream)
-        block = maintainers.parse_block(mstream)
-        if not block:
-            return (maints, reviewers)
-        mlist = cast(
-            List[maintainers.Identity], block[maintainers.LineType.MAINTAINER]
-        )
-        maints.extend(i.email.address for i in mlist)
-        if maintainers.LineType.REVIEWER in block:
-            rlist = cast(
-                List[maintainers.Identity], block[maintainers.LineType.REVIEWER]
-            )
-            reviewers.extend(i.email.address for i in rlist)
+    if os.path.exists(mfile):
+        return maintainers.get_reviewers(mfile)
+
     return (maints, reviewers)
 
 
diff --git a/maintainers/obmc/maintainers.py b/maintainers/obmc/maintainers.py
index fe93d5d..f541e36 100755
--- a/maintainers/obmc/maintainers.py
+++ b/maintainers/obmc/maintainers.py
@@ -10,6 +10,7 @@
 from typing import (
     Dict,
     NamedTuple,
+    Tuple,
     Iterator,
     Sequence,
     Union,
@@ -184,6 +185,23 @@
     return maintainers
 
 
+def get_reviewers(mfile: str) -> Tuple[List[str], List[str]]:
+    maintainers: List[str] = list()
+    reviewers: List[str] = list()
+
+    with open(mfile) as mstream:
+        trash_preamble(mstream)
+        block = parse_block(mstream)
+        if not block:
+            return (maintainers, reviewers)
+        mlist = cast(List[Identity], block[LineType.MAINTAINER])
+        maintainers.extend(i.email.address for i in mlist)
+        if LineType.REVIEWER in block:
+            rlist = cast(List[Identity], block[LineType.REVIEWER])
+            reviewers.extend(i.email.address for i in rlist)
+    return (maintainers, reviewers)
+
+
 def assemble_name(name: str, dst: IO[str]) -> None:
     dst.write(name)
 
