maybe better as a model method