diff --git a/lib/geocoder/results/smarty_streets.rb b/lib/geocoder/results/smarty_streets.rb
index 425328b2b23701eb14a31d46eb8d9d32bed41ca1..6bdb51437652079ad4abfe1671d4117bdc3823ac 100644
--- a/lib/geocoder/results/smarty_streets.rb
+++ b/lib/geocoder/results/smarty_streets.rb
@@ -4,7 +4,7 @@ module Geocoder::Result
   class SmartyStreets < Base
     def coordinates
       %w(latitude longitude).map do |i|
-        (zipcode_result? && zipcodes.first[i]) || metadata[i]
+        zipcode_endpoint? ? zipcodes.first[i] : metadata[i]
       end
     end
 
@@ -17,15 +17,15 @@ module Geocoder::Result
     end
 
     def state
-      components['state_abbreviation'] || city_states.first['state']
+      zipcode_endpoint? ?
+        city_states.first['state'] :
+        components['state_abbreviation']
     end
 
     def state_code
-      if cs = city_states.first
-        cs['state_abbreviation']
-      else
-        state
-      end
+      zipcode_endpoint? ?
+        city_states.first['state_abbreviation'] :
+        components['state_abbreviation']
     end
 
     def country
@@ -45,11 +45,15 @@ module Geocoder::Result
     end
 
     def city
-      components['city_name'] || city_states.first['city']
+      zipcode_endpoint? ?
+        city_states.first['city'] :
+        components['city_name']
     end
 
     def zipcode
-      components['zipcode'] || zipcodes.first['zipcode']
+      zipcode_endpoint? ?
+        zipcodes.first['zipcode'] :
+        components['zipcode']
     end
     alias_method :postal_code, :zipcode
 
@@ -59,10 +63,12 @@ module Geocoder::Result
     alias_method :postal_code_extended, :zip4
 
     def fips
-      metadata['county_fips'] || zipcodes.first['county_fips']
+      zipcode_endpoint? ?
+        zipcodes.first['county_fips'] :
+        metadata['county_fips']
     end
 
-    def zipcode_result?
+    def zipcode_endpoint?
       zipcodes.any?
     end