This might make more sense as a model method than a utility function?