diff --git a/modules/Bio/EnsEMBL/DBSQL/GenomeContainer.pm b/modules/Bio/EnsEMBL/DBSQL/GenomeContainer.pm
index 804140e0f3d3c4b42cbccf8a2a4ddf3b696f6408..7b004d64af9c04fce56189f040e7921b4b5ba047 100644
--- a/modules/Bio/EnsEMBL/DBSQL/GenomeContainer.pm
+++ b/modules/Bio/EnsEMBL/DBSQL/GenomeContainer.pm
@@ -128,8 +128,7 @@ sub get_version {
   }
   if (!defined $self->{'version'}) {
     my $csa = $self->db()->get_adaptor('CoordSystem');
-    my @cs = @{ $csa->fetch_all() };
-    $self->{'version'} = $cs[0]->version();
+    $self->{'version'} = $csa->get_default_version;
   }
   return $self->{'version'};
 }
@@ -158,6 +157,157 @@ sub get_accession {
   return $self->{'accession'};
 }
 
+
+=head2 get_assembly_name
+
+  Arg [1]    : (optional) assembly name
+  Example    : $assembly_name = $genome->get_assembly_name();
+  Description: Getter/setter for the name of the assembly currently used
+
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : Stable
+
+=cut
+
+sub get_assembly_name {
+  my ($self, $assembly_name) = @_;
+  if (defined $assembly_name) {
+    $self->{'assembly_name'} = $assembly_name;
+  }
+  if (!defined $self->{'assembly_name'}) {
+    $self->{'assembly_name'} = $self->_meta_container->single_value_by_key('assembly.name');
+  }
+  return $self->{'assembly_name'};
+}
+
+
+=head2 get_assembly_date
+
+  Arg [1]    : (optional) assembly date
+  Example    : $assembly_date = $genome->get_assembly_date();
+  Description: Getter/setter for the date of the assembly currently used
+
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : Stable
+
+=cut
+
+sub get_assembly_date {
+  my ($self, $assembly_date) = @_;
+  if (defined $assembly_date) {
+    $self->{'assembly_date'} = $assembly_date;
+  }
+  if (!defined $self->{'assembly_date'}) {
+    $self->{'assembly_date'} = $self->_meta_container->single_value_by_key('assembly.date');
+  }
+  return $self->{'assembly_date'};
+}
+
+
+=head2 get_genebuild_start_date
+
+  Arg [1]    : (optional) genebuild start date
+  Example    : $genebuild_start_date = $genome->get_genebuild_start_date();
+  Description: Getter/setter for the start date of the genebuild currently used
+
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : Stable
+
+=cut
+
+sub get_genebuild_start_date {
+  my ($self, $genebuild_start_date) = @_;
+  if (defined $genebuild_start_date) {
+    $self->{'genebuild_start_date'} = $genebuild_start_date;
+  }
+  if (!defined $self->{'genebuild_start_date'}) {
+    $self->{'genebuild_start_date'} = $self->_meta_container->single_value_by_key('genebuild.start_date');
+  }
+  return $self->{'genebuild_start_date'};
+}
+
+
+=head2 get_genebuild_method
+
+  Arg [1]    : (optional) genebuild start date
+  Example    : $genebuild_method = $genome->get_genebuild_method();
+  Description: Getter/setter for the method of the genebuild currently used
+
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : Stable
+
+=cut
+
+sub get_genebuild_method {
+  my ($self, $genebuild_method) = @_;
+  if (defined $genebuild_method) {
+    $self->{'genebuild_method'} = $genebuild_method;
+  }
+  if (!defined $self->{'genebuild_method'}) {
+    $self->{'genebuild_method'} = $self->_meta_container->single_value_by_key('genebuild.method');
+  }
+  return $self->{'genebuild_method'};
+}
+
+
+=head2 get_genebuild_initial_release_date
+
+  Arg [1]    : (optional) genebuild initial release date
+  Example    : $genebuild_initial_release_date = $genome->get_initial_release_date();
+  Description: Getter/setter for the initial release date of the genebuild currently used
+
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : Stable
+
+=cut
+
+sub get_genebuild_initial_release_date {
+  my ($self, $genebuild_initial_release_date) = @_;
+  if (defined $genebuild_initial_release_date) {
+    $self->{'genebuild_initial_release_date'} = $genebuild_initial_release_date;
+  }
+  if (!defined $self->{'genebuild_initial_release_date'}) {
+    $self->{'genebuild_initial_release_date'} = $self->_meta_container->single_value_by_key('genebuild.initial_release_date');
+  }
+  return $self->{'genebuild_initial_release_date'};
+}
+
+
+=head2 get_genebuild_last_geneset_update
+
+  Arg [1]    : (optional) genebuild last geneset update
+  Example    : $genebuild_last_geneset_update = $genome->get_last_geneset_update();
+  Description: Getter/setter for the last geneset update of the genebuild currently used
+
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : Stable
+
+=cut
+
+sub get_genebuild_last_geneset_update {
+  my ($self, $genebuild_last_geneset_update) = @_;
+  if (defined $genebuild_last_geneset_update) {
+    $self->{'genebuild_last_geneset_update'} = $genebuild_last_geneset_update;
+  }
+  if (!defined $self->{'genebuild_last_geneset_update'}) {
+    $self->{'genebuild_last_geneset_update'} = $self->_meta_container->single_value_by_key('genebuild.last_geneset_update');
+  }
+  return $self->{'genebuild_last_geneset_update'};
+}
+
+
 =head2 _get_length
 
   Arg [1]    : none
@@ -188,7 +338,6 @@ sub _get_length {
   Arg [1]    : (optional) golden path length
   Example    : $ref_length = $genome->get_ref_length();
   Description: Getter/setter for the golden path of the assembly currently used
-
   Returntype : integer
   Exceptions : none
   Caller     : general
@@ -246,11 +395,9 @@ sub get_total_length {
 =cut
 
 sub get_toplevel {
-  my $self = @_;
-  if (!defined $self->{'toplevel'}) {
-    my $sa = $self->db()->get_adaptor('Slice');
-    $self->{'toplevel'} = $sa->fetch_all('toplevel');
-  }
+  my ($self) = @_;
+  my $sa = $self->db->get_adaptor('Slice');
+  $self->{'toplevel'} = $sa->fetch_all('toplevel');
   return $self->{'toplevel'};
 }
 
@@ -269,11 +416,9 @@ sub get_toplevel {
 =cut
 
 sub get_karyotype {
-  my $self = @_;
-  if (!defined $self->{'karyotype'}) {
-    my $sa = $self->db()->get_adaptor('Slice');
-    $self->{'karyotype'} = $sa->fetch_all_karyotype;
-  }
+  my ($self) = @_;
+  my $sa = $self->db->get_adaptor('Slice');
+  $self->{'karyotype'} = $sa->fetch_all_karyotype;
   return $self->{'karyotype'};
 }
 
@@ -291,11 +436,13 @@ sub get_karyotype {
 =cut
 
 sub get_coord_systems {
-  my $self = @_;
-  if (!defined $self->{'coord_systems'}) {
-    my $version = $self->version();
-    my $csa = $self->db->get_adaptor('CoordSystem');
+  my ($self, $all) = @_;
+  my $csa = $self->db->get_adaptor('CoordSystem');
+  if (!$all) {
+    my $version = $self->get_version();
     $self->{'coord_systems'} = $csa->fetch_all_by_version($version);
+  } else {
+    $self->{'coord_systems'} = $csa->fetch_all();
   }
   return $self->{'coord_systems'};
 }