diff --git a/Changelog b/Changelog
index 1399d6d5059fd655bf913bfcb23bffd2509daa76..d590475f8409fb948b53fa7b789e6bd78e42c665 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,10 @@
+Travel::Routing::DE::VRR 2.08 - Wed Oct 08 2014
+
+    * efa: Add -l / --list option
+    * efa: Add -s / --service option
+    * Travel::Routing::DE::EFA::get_efa_urls() now returns a list of hashrefs
+    * Documentation improvements
+
 Travel::Routing::DE::VRR 2.07 - Fri Aug 08 2014
 
     * Add URLs for several austrian EFA services
diff --git a/bin/efa b/bin/efa
index f7c98d44665be9aab0e79ad4ea9069a102b82e0a..5045de788f677b6db6f80738673e03d60ed5393a 100755
--- a/bin/efa
+++ b/bin/efa
@@ -16,7 +16,7 @@ use Exception::Class;
 use Getopt::Long qw/:config no_ignore_case/;
 use List::Util qw(first);
 
-our $VERSION = '2.07';
+our $VERSION = '2.08';
 my $ignore_info = 'Fahrradmitnahme';
 my $efa;
 my $efa_url = 'http://efa.vrr.de/vrr/XSLT_TRIP_REQUEST2';
@@ -370,7 +370,7 @@ efa - unofficial efa.vrr.de command line client
 
 =head1 VERSION
 
-version 2.07
+version 2.08
 
 =head1 DESCRIPTION
 
diff --git a/lib/Travel/Routing/DE/EFA.pm b/lib/Travel/Routing/DE/EFA.pm
index 876e8655c5091b425f5601e16ef9ed767dd67988..f60571b643f9e671e2202a7f9c3ca19dd622dd7e 100644
--- a/lib/Travel/Routing/DE/EFA.pm
+++ b/lib/Travel/Routing/DE/EFA.pm
@@ -40,7 +40,7 @@ use Exception::Class (
 	},
 );
 
-our $VERSION = '2.07';
+our $VERSION = '2.08';
 
 sub set_time {
 	my ( $self, %conf ) = @_;
@@ -825,7 +825,7 @@ Travel::Routing::DE::EFA - unofficial interface to EFA-based itinerary services
 
 =head1 VERSION
 
-version 2.07
+version 2.08
 
 =head1 DESCRIPTION
 
diff --git a/lib/Travel/Routing/DE/EFA/Route.pm b/lib/Travel/Routing/DE/EFA/Route.pm
index 510457d644e31f549d73d1735258c58d04b24424..133e2394a3494f55a2045a1f056d22ed95558622 100644
--- a/lib/Travel/Routing/DE/EFA/Route.pm
+++ b/lib/Travel/Routing/DE/EFA/Route.pm
@@ -8,7 +8,7 @@ use parent 'Class::Accessor';
 
 use Travel::Routing::DE::EFA::Route::Part;
 
-our $VERSION = '2.07';
+our $VERSION = '2.08';
 
 Travel::Routing::DE::EFA::Route->mk_ro_accessors(
 	qw(duration ticket_text ticket_type fare_adult fare_child vehicle_time));
@@ -52,7 +52,7 @@ Travel::Routing::DE::EFA::Route - Single route (connection) between two points
 
 =head1 VERSION
 
-version 2.07
+version 2.08
 
 =head1 DESCRIPTION
 
diff --git a/lib/Travel/Routing/DE/EFA/Route/Part.pm b/lib/Travel/Routing/DE/EFA/Route/Part.pm
index 46454352d041a6785b3f63c02f669226dbd32d63..2e6c7b2c23d902f949c79d00373f4ff27eecafee 100644
--- a/lib/Travel/Routing/DE/EFA/Route/Part.pm
+++ b/lib/Travel/Routing/DE/EFA/Route/Part.pm
@@ -6,7 +6,7 @@ use 5.010;
 
 use parent 'Class::Accessor';
 
-our $VERSION = '2.07';
+our $VERSION = '2.08';
 
 Travel::Routing::DE::EFA::Route::Part->mk_ro_accessors(
 	qw(arrival_platform arrival_stop
@@ -110,7 +110,7 @@ points, without interchanges
 
 =head1 VERSION
 
-version 2.07
+version 2.08
 
 =head1 DESCRIPTION
 
diff --git a/lib/Travel/Routing/DE/VRR.pm b/lib/Travel/Routing/DE/VRR.pm
index ef01d5cdbd92eb15dee906cdeb10c2cda9dea6bf..eac24388ef8be8ea6f3a1470ecee8ec3d4a116c7 100644
--- a/lib/Travel/Routing/DE/VRR.pm
+++ b/lib/Travel/Routing/DE/VRR.pm
@@ -6,7 +6,7 @@ use 5.010;
 
 no if $] >= 5.018, warnings => "experimental::smartmatch";
 
-our $VERSION = '2.07';
+our $VERSION = '2.08';
 
 use parent 'Travel::Routing::DE::EFA';
 
@@ -50,7 +50,7 @@ Travel::Routing::DE::VRR - unofficial interface to the efa.vrr.de German itinera
 
 =head1 VERSION
 
-version 2.07
+version 2.08
 
 =head1 DESCRIPTION