diff --git a/lib/geocoder/results/geoip2.rb b/lib/geocoder/results/geoip2.rb
index cda8cd507a7b2c29f0549bf97c5942115f05f180..96721ad5c211b0cb0c0eb111718eb38a0058f8d3 100644
--- a/lib/geocoder/results/geoip2.rb
+++ b/lib/geocoder/results/geoip2.rb
@@ -9,15 +9,9 @@ module Geocoder
       end
 
       def coordinates
-        [latitude, longitude]
-      end
-
-      def latitude
-        data.fetch('location', {}).fetch('latitude', 0.0)
-      end
-
-      def longitude
-        data.fetch('location', {}).fetch('longitude', 0.0)
+        %w[latitude longitude].map do |l|
+          data.fetch('location', {}).fetch(l, 0.0)
+        end
       end
 
       def city
diff --git a/lib/geocoder/results/ipapi_com.rb b/lib/geocoder/results/ipapi_com.rb
index 0ac3264868646879ca937306a2db67651472e764..4e58f8e739e2a96e728927e984b4cc098ca8b76e 100644
--- a/lib/geocoder/results/ipapi_com.rb
+++ b/lib/geocoder/results/ipapi_com.rb
@@ -3,14 +3,6 @@ require 'geocoder/results/base'
 module Geocoder::Result
   class IpapiCom < Base
 
-    def latitude
-      lat
-    end
-
-    def longitude
-      lon
-    end
-
     def coordinates
       [lat, lon]
     end
diff --git a/lib/geocoder/results/ipinfo_io.rb b/lib/geocoder/results/ipinfo_io.rb
index da99d8dc56b437270f4dd1a0065501926a17989f..e588fa8e8caddffddc117d7f9b995fc22945fe74 100644
--- a/lib/geocoder/results/ipinfo_io.rb
+++ b/lib/geocoder/results/ipinfo_io.rb
@@ -7,16 +7,8 @@ module Geocoder::Result
       "#{city} #{postal_code}, #{country}".sub(/^[ ,]*/, "")
     end
 
-    def latitude
-      @data['loc'].split(',')[0].to_f
-    end
-
-    def longitude
-      @data['loc'].split(',')[1].to_f
-    end
-
     def coordinates
-        [latitude, longitude]
+      @data['loc'].split(",").map(&:to_f)
     end
 
     def city
diff --git a/lib/geocoder/results/mapbox.rb b/lib/geocoder/results/mapbox.rb
index 9142e1903668181928b854ccf79ab0a3bd2130fb..f789d325ba6ffea836b0e38f6fd46ab78c7b777c 100644
--- a/lib/geocoder/results/mapbox.rb
+++ b/lib/geocoder/results/mapbox.rb
@@ -3,16 +3,8 @@ require 'geocoder/results/base'
 module Geocoder::Result
   class Mapbox < Base
 
-    def latitude
-      @latitude ||= @data["geometry"]["coordinates"].last.to_f
-    end
-
-    def longitude
-      @longitude ||= @data["geometry"]["coordinates"].first.to_f
-    end
-
     def coordinates
-      [latitude, longitude]
+      @data["geometry"]["coordinates"].reverse.map(&:to_f)
     end
 
     def place_name
diff --git a/lib/geocoder/results/mapquest.rb b/lib/geocoder/results/mapquest.rb
index 4f405e6e436547f54e75ec9af90e012893c428b9..2a92d4f309df613d24bf221d81aac968d88f5195 100644
--- a/lib/geocoder/results/mapquest.rb
+++ b/lib/geocoder/results/mapquest.rb
@@ -2,16 +2,9 @@ require 'geocoder/results/base'
 
 module Geocoder::Result
   class Mapquest < Base
-    def latitude
-      @data["latLng"]["lat"]
-    end
-
-    def longitude
-      @data["latLng"]["lng"]
-    end
 
     def coordinates
-      [latitude, longitude]
+      %w[lat lng].map{ |l| @data["latLng"][l] }
     end
 
     def city