Should this be in `app/models/concerns/`?