Why this matters
When a plain list is passed around, every caller invents its own way to filter, sort, or query it. The same for user in users if user.is_admin loop ends up in five different files. Wrapping the collection in a class with named methods means that logic exists exactly once — and the name makes the intent obvious.
Code Challenge
Study the messy code, try to refactor it, then reveal the clean version.
Key takeaway
Any time you pass a raw list or array, ask: does this collection have behaviour that's repeated in more than one place? If yes, it deserves its own class with a meaningful name and focused methods.