3 gather location data

The code is commented enough to let you know what I have coded, we also discussed in on Slack. So here it is. Thanks for comments! :)
There's no reason to loop this whole function 3 times, returning one result each time. 
Instead of writing a `O(3n)` algorithm, could we look through and just return the top three values when we calculate it the first time?