Trying again ...

Seems like this whole calculation around distance should happen either in the model or in a service object.