outsource actual geo coding into own function