diff --git a/model_server/base/accessors.py b/model_server/base/accessors.py
index 1241548a2c74e6dc2bc7ef0cc3913b5d258030e1..a7d5453d5ffcc90356540ee876e36169de4ebb28 100644
--- a/model_server/base/accessors.py
+++ b/model_server/base/accessors.py
@@ -29,10 +29,6 @@ class GenericImageDataAccessor(ABC):
     def loaded(self):
         return self._data is not None
 
-    def unload(self):
-        self._data = None
-        self._metadata = None
-
     @property
     def chroma(self):
         return self.shape_dict['C']
@@ -161,6 +157,7 @@ class GenericImageDataAccessor(ABC):
 
     @property
     def shape(self):
+        # TODO: cache this after loading data, so that subsequent functions don't re-load array
         return self.data.shape
 
     @property
diff --git a/model_server/base/session.py b/model_server/base/session.py
index c61d6a6ea34bb316e21cbd61a94a736ac17656fa..c9058bb2d0400ad80371dc2efd60505b8eadce7d 100644
--- a/model_server/base/session.py
+++ b/model_server/base/session.py
@@ -167,7 +167,6 @@ class _Session(object):
         self.log_info(f'Added accessor {accessor_id}')
         return accessor_id
 
-    # TODO: divergent cases between lazy file-backed accessor (with its own loaded state) and in-memory ones
     def del_accessor(self, accessor_id: str) -> str:
         """
         Remove accessor object but retain its info dictionary
@@ -180,16 +179,14 @@ class _Session(object):
         if isinstance(v, dict) and v['loaded'] is False:
             logger.warning(f'Accessor {accessor_id} is already deleted')
         else:
-            assert isinstance(v['object'], GenericImageDataAccessor)
             v['loaded'] = False
             v['object'] = None
         self.log_info(f'Deleted accessor {accessor_id}')
         return accessor_id
 
-    # TODO: call unload method on file-backed accessors
     def del_all_accessors(self) -> list[str]:
         """
-        Remove (unload) all accessors but keep their info in dictionary
+        Remove all accessor objects but keep their info in dictionary
         :return: list of removed accessor IDs
         """
         res = []
@@ -233,9 +230,9 @@ class _Session(object):
             self.del_accessor(acc_id)
         return acc
 
-    def write_accessor(self, acc_id: str, filename: Union[str, None] = None, pop: bool = True) -> str:
+    def write_accessor(self, acc_id: str, filename: Union[str, None] = None, pop: bool = False) -> str:
         """
-        Write an accessor to file and optionally unload it from the session
+        Write an accessor to file and optionally remove its object from the session
         :param acc_id: accessor's ID
         :param filename: force use of a specific filename, raise InvalidPathError if this already exists
         :param pop: unload accessor from the session if True
diff --git a/tests/base/test_accessors.py b/tests/base/test_accessors.py
index bef1506d8b08b256b645a8de6ed8904ef1c6cb1a..cc363806ef479797b7447f763b2f2c633f40e86c 100644
--- a/tests/base/test_accessors.py
+++ b/tests/base/test_accessors.py
@@ -241,11 +241,6 @@ class TestCziImageFileAccess(unittest.TestCase):
         self.assertIsInstance(acc_cf._data, np.ndarray)
         self.assertIsInstance(acc_cf._metadata, dict)
 
-        # explicitly unload
-        acc_cf.unload()
-        self.assertIsNone(acc_cf._data)
-        self.assertIsNone(acc_cf._metadata)
-
 
 class TestPatchStackAccessor(unittest.TestCase):
     def setUp(self) -> None:
diff --git a/tests/base/test_session.py b/tests/base/test_session.py
index 7a90a70505482351b4fcfe653f7e68fcf78a462d..3d4f11870d7d97fbd4117c65d78d09ed7045394d 100644
--- a/tests/base/test_session.py
+++ b/tests/base/test_session.py
@@ -151,7 +151,7 @@ class TestSessionPersistentData(unittest.TestCase):
         self.assertTrue(session.get_accessor_info(acc_id)['loaded'])
 
         # get accessor from session registry with popping
-        acc_get = session.get_accessor(acc_id)
+        acc_get = session.get_accessor(acc_id, pop=True)
         self.assertIsInstance(acc_get, InMemoryDataAccessor)
         self.assertEqual(acc_get.shape_dict, shd)
         self.assertFalse(session.get_accessor_info(acc_id)['loaded'])