Because you're memoizing the results of the first call, subsequent calls will get the same result even if their options are different. 

I'd rather this were specific to finding students for a specific team. Let's call it `students_for_team(team)` and have it loop through `students` looking for ids included in `@team.student_ids`. That way we're not instantiating the same student object multiple times.