Maybe the language is just a little wrong here and I should remove "legacy".  It's convenient to pass just a userid or user model and it seems like a majority of our use cases so I don't want to refactor all those places.