diff --git a/Lib/importlib/NOTES b/Lib/importlib/NOTES
index 92e2841..1bbcb96 100644
--- a/Lib/importlib/NOTES
+++ b/Lib/importlib/NOTES
@@ -5,19 +5,22 @@
   subclass of source support (makes it nicer for VMs that don't use CPython
   bytecode).
 
-    + ExtensionFileFinder
-    + PyFileFinder
-    + PyPycFileFinder
-    + PyFileLoader
+    + PyLoader (for ABC)
 
         - get_code for source only
+
+    + PyFileLoader(PyLoader)
+
         - get_data
         - source_mtime
         - source_path
 
-    + PyPycFileLoader(PyFileLoader)
+    +PyPycLoader (PyLoader, for ABC)
 
-        - get_code
+        - get_code for source and bytecode
+        
+    + PyPycFileLoader(PyPycLoader, PyFileLoader)
+
         - bytecode_path
         - write_bytecode
 
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index 4db61da..068ee10 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -592,10 +592,18 @@
         # Make sure that Python source files are listed first!  Needed for an
         # optimization by the loader.
         self._suffixes = suffix_list(imp.PY_SOURCE)
-        self._suffixes += suffix_list(imp.PY_COMPILED)
         super().__init__(path_entry)
 
 
+class PyPycFileFinder(PyFileFinder):
+
+    """Finder for source and bytecode files."""
+
+    def __init__(self, path_entry):
+        super().__init__(path_entry)
+        self._suffixes += suffix_list(imp.PY_COMPILED)
+
+
 class PathFinder:
 
     """Meta path finder for sys.(path|path_hooks|path_importer_cache)."""
@@ -659,7 +667,7 @@
             return None
 
 
-_DEFAULT_PATH_HOOK = chained_path_hook(ExtensionFileFinder, PyFileFinder)
+_DEFAULT_PATH_HOOK = chained_path_hook(ExtensionFileFinder, PyPycFileFinder)
 
 class _DefaultPathFinder(PathFinder):
 
diff --git a/Lib/importlib/test/source/test_case_sensitivity.py b/Lib/importlib/test/source/test_case_sensitivity.py
index df6d3bc..210e620 100644
--- a/Lib/importlib/test/source/test_case_sensitivity.py
+++ b/Lib/importlib/test/source/test_case_sensitivity.py
@@ -19,7 +19,7 @@
     assert name != name.lower()
 
     def find(self, path):
-        finder = importlib.PyFileFinder(path)
+        finder = importlib.PyPycFileFinder(path)
         return finder.find_module(self.name)
 
     def sensitivity_test(self):
diff --git a/Lib/importlib/test/source/test_finder.py b/Lib/importlib/test/source/test_finder.py
index 0cfb14f..1e4333c 100644
--- a/Lib/importlib/test/source/test_finder.py
+++ b/Lib/importlib/test/source/test_finder.py
@@ -32,7 +32,7 @@
     """
 
     def import_(self, root, module):
-        finder = importlib.PyFileFinder(root)
+        finder = importlib.PyPycFileFinder(root)
         return finder.find_module(module)
 
     def run_test(self, test, create=None, *, compile_=None, unlink=None):
