diff --git a/lib/geocoder/results/bing.rb b/lib/geocoder/results/bing.rb
index 70b696b86bf7ed6e7cdb63d66331c1668189ca28..215e4fb1dc3a84f35bb8a9c49257afb3bb3d66ee 100644
--- a/lib/geocoder/results/bing.rb
+++ b/lib/geocoder/results/bing.rb
@@ -4,48 +4,45 @@ module Geocoder::Result
   class Bing < Base
 
     def address(format = :full)
-      data_address['formattedAddress']
+      @data['address']['formattedAddress']
     end
 
     def city
-      data_address['locality']
+      @data['address']['locality']
     end
 
-    def country
-      data_address['countryRegion']
+    def state_code
+      @data['address']['adminDistrict']
     end
-    
-    def country_code
-      # Bing does not return a contry code
-      ""
+
+    alias_method :state, :state_code
+
+    def country
+      @data['address']['countryRegion']
     end
 
+    alias_method :country_code, :country
+
     def postal_code
-      data_address['postalCode']
+      @data['address']['postalCode']
     end
-    
+
     def coordinates
-      data_coordinates['coordinates']
+      @data['point']['coordinates']
     end
-    
-    def data_address
+
+    def address_data
       @data['address']
     end
-    
-    def data_coordinates
-      @data['point']
-    end
-    
-    def address_line
-      data_address['addressLine']
-    end
-    
-    def state
-      data_address['adminDistrict']
+
+    def self.response_attributes
+      %w[bbox name confidence entityType]
     end
-    
-    def confidence
-      @data['confidence']
+
+    response_attributes.each do |a|
+      define_method a do
+        @data[a]
+      end
     end
   end
 end