diff --git a/lib/geocoder/lookup.rb b/lib/geocoder/lookup.rb
index 7687b2ef0366430f3851c1505e2f190d02cd72b1..d96dedc6091f226bea041b19adbe3c876ff39e56 100644
--- a/lib/geocoder/lookup.rb
+++ b/lib/geocoder/lookup.rb
@@ -1,31 +1,32 @@
 module Geocoder
   module Lookup
+    extend self
 
     ##
     # Array of valid Lookup service names.
     #
-    def self.all_services
+    def all_services
       street_services + ip_services
     end
 
     ##
     # Array of valid Lookup service names, excluding :test.
     #
-    def self.all_services_except_test
+    def all_services_except_test
       all_services - [:test]
     end
 
     ##
     # All street address lookup services, default first.
     #
-    def self.street_services
+    def street_services
       [:google, :google_premier, :yahoo, :bing, :geocoder_ca, :yandex, :nominatim, :mapquest, :test]
     end
 
     ##
     # All IP address lookup services, default first.
     #
-    def self.ip_services
+    def ip_services
       [:freegeoip]
     end
 
@@ -34,7 +35,7 @@ module Geocoder
     # Use this instead of Geocoder::Lookup::X.new to get an
     # already-configured Lookup object.
     #
-    def self.get(name)
+    def get(name)
       @services = {} unless defined?(@services)
       @services[name] = spawn(name) unless @services.include?(name)
       @services[name]
@@ -46,7 +47,7 @@ module Geocoder
     ##
     # Spawn a Lookup of the given name.
     #
-    def self.spawn(name)
+    def spawn(name)
       if all_services.include?(name)
         name = name.to_s
         Geocoder::Lookup.const_get(classify_name(name)).new
@@ -57,7 +58,7 @@ module Geocoder
       end
     end
 
-    def self.classify_name(filename)
+    def classify_name(filename)
       filename.split("_").map{ |i| i[0...1].upcase + i[1..-1] }.join
     end
   end