diff --git a/src/linkahead/common/models.py b/src/linkahead/common/models.py
index 5750fb3ef33d30ae435766d22f81241d91181499..347d413808d680fc17a0fd2ccdb5c22ae39b1701 100644
--- a/src/linkahead/common/models.py
+++ b/src/linkahead/common/models.py
@@ -5479,9 +5479,8 @@ def delete(ids: Union[list[int], range], raise_exception_on_error: bool = True):
     return c.delete(raise_exception_on_error=raise_exception_on_error)
 
 
-def _filter_entity_list(listobject, entity: Optional[Entity] = None, pid: Union[None, str, int] = None,
-                        name: Optional[str] = None, conjunction: bool = False,
-                        check_wrapped: bool = True) -> list:
+def _filter_entity_list(listobject: list[Entity], entity: Optional[Entity] = None, pid: Union[None, str, int] = None,
+                        name: Optional[str] = None, conjunction: bool = False) -> list:
     """
     Returns a subset of the entities in the list based on whether their ID and name matches the
     selection criterion.
@@ -5493,18 +5492,12 @@ def _filter_entity_list(listobject, entity: Optional[Entity] = None, pid: Union[
     - ID and name are not None: will be returned if the ID matches a given not-None value, if no ID
       was given, the entity will be returned if the name matches.
 
-    You can provide a name or an ID and all matching elements will be returned.
-    If both name and ID are given, elements matching either criterion will be
-    returned unless conjunction=True is given. In that case both criteria have to be met.
+    As IDs can be strings, integer IDs will be casted to string for the comparison.
 
     If an Entity is given, neither name nor ID may be set. In this case, ID and name are taken from
     the given entity, but the behavior is the same.
 
-    In case the elements contained in the given list are wrapped, the function
-    in its default configuration checks both the wrapped and wrapper Entity
-    against the match criteria, and will return the wrapped Entity if both
-    match. Note that this is currently not iterative, meaning that only the
-    first layer of wrapped entity is considered.
+    TODO explain conjunction -> Not implementd
 
     Params
     ------
@@ -5517,24 +5510,20 @@ def _filter_entity_list(listobject, entity: Optional[Entity] = None, pid: Union[
                         Entity ID to match
     name              : str
                         Entity name to match
-    check_wrapped     : bool, default: True
-                        If set to False, only the wrapper elements
-                        contained in the given list will be checked and
-                        returned, not the original Entities they wrap.
 
     Returns
     -------
     matches          : list
                        A List containing all matching Entities
     """
+    if conjunction:
+        raise NotImplementedError("conjunction is not yet implemented")
     # Check correct input params and setup
-    match_entity = False
     if entity is not None:
         if pid is not None or name is not None:
             raise ValueError("Please provide either Entity, pid or name.")
         pid = entity.id
         name = entity.name
-        match_entity = True
 
     # Iterate through list and match based on given criteria
     matches = []
@@ -5557,9 +5546,6 @@ def _filter_entity_list(listobject, entity: Optional[Entity] = None, pid: Union[
 
         # If the criteria are satisfied, append the match. Otherwise, check
         # the wrapper if applicable
-        # ToDo: Check whether it would make sense to also check the RecordType
-        #       for equality when match_entity is true to offset potentially
-        #       missing id
         if name_match and pid_match:
             matches.append(candidate)
         elif not match_entity and (name_match or pid_match):
diff --git a/unittests/test_entity.py b/unittests/test_entity.py
index 21dee017517c40dd7282625042ba98fe2d80218f..5c6752c3e5ca52cf616606ea3f235e009542600b 100644
--- a/unittests/test_entity.py
+++ b/unittests/test_entity.py
@@ -197,6 +197,8 @@ def test_filter():
         tp3 = t.properties[-1]
         assert len(t_props.filter(pid=100)) == 1
         assert tp1 in t_props.filter(pid=100)
+        assert len(t_props.filter(pid="100")) == 1
+        assert tp1 in t_props.filter(pid="100")
         assert len(t_props.filter(pid=101, name="RT")) == 1
         assert tp3 in t_props.filter(pid=101, name="RT")
         for entity in [rt1, p2, r1, r2]: