organizeData should have an additional case when the stop id already exists in the hash (because multiple routes can use the same stop) that adds the new route and direction to the stop. This will require stopsHash[i].routeId and stopsHash[i].direction to be arrays or somesuch.