def METHOD_NAME(self, entity: Union[str, Dict, List, Any], depth=10):
    """Recursively traverses entity and remove all sensitive information.
    Can work with:
        1. Text
        2. Dictionaries
        3. Lists
    All other fields just will be skipped.
    Args:
        entity: an entity to process.
        depth: depth of recursion.
    Returns:
        The entity with removed sensitive information.
    """
    if depth < 0 or not entity:
        return entity
    depth -= 1
    if isinstance(entity, str):
        return self.scrub_text(entity)
    if isinstance(entity, list):
        return [self.METHOD_NAME(item, depth) for item in entity]
    if isinstance(entity, dict):
        result = {}
        for key, value in entity.items():
            if key in self.dict_keys_for_scrub:
                value = value.strip()
                fake_value = obfuscate_string(value)
                placeholder = self.create_placeholder(fake_value)
                self.add_sensitive_pair(value, placeholder)
            result[key] = self.METHOD_NAME(value, depth)
        return result
    return entity