diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 86274691eb2a3818dfa2b402245df562456a868c..622c7169cfc1244cae7561e2d85efdb662e5ba73 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -6,7 +6,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [ "3.7", "3.8", "pypy3.9", "pypy3.10", "3.9", "3.10", "3.11", "3.12" ]
+        python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11", "3.12" ]
     steps:
       - uses: actions/checkout@main
       - uses: actions/setup-python@main
diff --git a/satella/dao.py b/satella/dao.py
index 207d8b6dac17d7eebe0dcd583692a3d90d39fd7a..329cea3be6aa2814744a2ac281731c4542deffa0 100644
--- a/satella/dao.py
+++ b/satella/dao.py
@@ -47,7 +47,7 @@ def must_be_loaded(fun):
         assert isinstance(self,
                           Loadable), 'must_be_loaded called with a class that does not subclass ' \
                                      'Loadable'
-        if not self._loaded:
+        if not self._loaded:        # pylint disable:protected-access
             self.refresh()
         return fun(self, *args, **kwargs)
 
diff --git a/satella/os/misc.py b/satella/os/misc.py
index 456aad4fdfd8aa4063c75b915e5fbeb666959303..10377d631e2dd5f9e984e75a99cc31e6fb859059 100644
--- a/satella/os/misc.py
+++ b/satella/os/misc.py
@@ -34,9 +34,9 @@ def safe_listdir(directory: str) -> tp.Iterator[str]:
     """
     Return elements of directory.
 
-    Retuns nothing if directory does not exist, or is not a directory.
+    Returns nothing (an empty iterator) if directory does not exist, or is not a directory.
 
-    :param directory: path to the element.
+    :param directory: path to the element to examine.
     """
     try:
         yield from os.listdir(directory)