diff --git a/lib/geocoder.rb b/lib/geocoder.rb
index 4e648617223cb923a8fc1dfe122262e449a13a22..edcd8ad3b6c6436f1c72b3c67d898bad55946c6e 100644
--- a/lib/geocoder.rb
+++ b/lib/geocoder.rb
@@ -9,6 +9,17 @@ require "geocoder/models/mongo_mapper"
 module Geocoder
   extend self
 
+  # This method can be used to change some functional aspects, like,
+  # the geocoding service provider, or the units of calculations.
+  # Please see {include:Configuration}
+  def configure(&block)
+    if block_given?
+      module_eval(&block)
+    else
+      Configuration.instance
+    end
+  end
+
   ##
   # Search for information about an address or a set of coordinates.
   #
@@ -74,6 +85,10 @@ module Geocoder
 
   private # -----------------------------------------------------------------
 
+  def config # :nodoc
+    Configuration.instance
+  end
+
   ##
   # Get a Lookup object (which communicates with the remote geocoding API).
   # Takes a search query and returns an IP or street address Lookup
@@ -139,3 +154,4 @@ if defined?(Rails)
   require "geocoder/railtie"
   Geocoder::Railtie.insert
 end
+
diff --git a/lib/geocoder/configuration.rb b/lib/geocoder/configuration.rb
index 7d1e7cc8c57e604fbb1ef46f9ad2410aa95a5a58..108ba674ec00d6a67e2b3ed8375d126fc8875c55 100644
--- a/lib/geocoder/configuration.rb
+++ b/lib/geocoder/configuration.rb
@@ -9,9 +9,9 @@ module Geocoder
   # == Geocoder Configuration
   #
   # The configuration of Geocoder can be done in to ways:
-  # - using +Geocoder#configure+ method:
+  # @example Using +Geocoder#configure+ method:
   #
-  #   Geocoder.configure do |config|
+  #   Geocoder.configure do
   #     config.timeout      = 3           # geocoding service timeout (secs)
   #     config.lookup       = :google     # name of geocoding service (symbol)
   #     config.language     = :en         # ISO-639 language code
@@ -32,7 +32,7 @@ module Geocoder
   #     @method = :spherical # :spherical or :linear
   #   end
   #
-  # - or using +Geocoder::Configuration+ class directly, like in:
+  # @example Using +Geocoder::Configuration+ class directly, like in:
   #
   #   Geocoder::Configuration.language = 'pt-BR'
   #
diff --git a/test/configuration_test.rb b/test/configuration_test.rb
index ae98c9b131d4f235219df65b799ea388948e3877..2812fe432caf2ef84a09c888ce4d43019bffebc1 100644
--- a/test/configuration_test.rb
+++ b/test/configuration_test.rb
@@ -33,7 +33,7 @@ class ConfigurationTest < Test::Unit::TestCase
 
   # --- Geocoder#configure method configuration ---
   def test_geocoder_configuration
-    Geocoder.configure { |config| config.units = :mi }
+    Geocoder.configure { config.units = :mi }
 
     assert_equal Geocoder::Configuration.units, :mi
     distance = Geocoder::Calculations.distance_between([0,0], [0,1]).round