diff --git a/lib/geocoder/lookup.rb b/lib/geocoder/lookup.rb
index 7f6ed3bca38249f3c28df4bbdd9ac185427d8de3..7687b2ef0366430f3851c1505e2f190d02cd72b1 100644
--- a/lib/geocoder/lookup.rb
+++ b/lib/geocoder/lookup.rb
@@ -49,7 +49,6 @@ module Geocoder
     def self.spawn(name)
       if all_services.include?(name)
         name = name.to_s
-        require "geocoder/lookups/#{name}"
         Geocoder::Lookup.const_get(classify_name(name)).new
       else
         valids = all_services.map(&:inspect).join(", ")
@@ -63,3 +62,7 @@ module Geocoder
     end
   end
 end
+
+Geocoder::Lookup.all_services.each do |name|
+  require "geocoder/lookups/#{name}"
+end