diff --git a/app/services/contact_details/base.rb b/app/services/contact_details/base.rb
index ebb65f0781c5376303ec4c03ebc5e0d042124b60..80b1c8211df55ac4b2570034d2948f5a75d1001c 100644
--- a/app/services/contact_details/base.rb
+++ b/app/services/contact_details/base.rb
@@ -3,17 +3,22 @@ class ContactDetails::Base
 
   def initialize(string)
     @string = string.to_s
+    return if @string.blank?
     prepare_url
     prepare_label
   end
 
+  def present?
+    url.present?
+  end
+
   protected
 
-  def prepare_label
-    @label = @string
+  def prepare_url
+    @url = @string.dup
   end
 
-  def prepare_url
-    @url = @string
+  def prepare_label
+    @label = @string.dup
   end
 end
\ No newline at end of file
diff --git a/app/services/contact_details/country.rb b/app/services/contact_details/country.rb
index 29132d5a235451a978d56fb3a3ed5fcafcbac270..0a006beb47a728d5aba977cc9fe223bbda4866b9 100644
--- a/app/services/contact_details/country.rb
+++ b/app/services/contact_details/country.rb
@@ -3,8 +3,7 @@ class ContactDetails::Country < ContactDetails::Base
   protected
 
   def prepare_label
-    super
-    # TODO country name
+    @label = ISO3166::Country[@string].common_name
   end
 
 end
\ No newline at end of file
diff --git a/app/services/contact_details/email.rb b/app/services/contact_details/email.rb
index 1de30890d871960277fcc3c8a2c8af63fe33e979..ec1f6be6dd699ce80ca1dbb984d38fedab873616 100644
--- a/app/services/contact_details/email.rb
+++ b/app/services/contact_details/email.rb
@@ -1,9 +1,10 @@
 class ContactDetails::Email < ContactDetails::Base
+  PREFIX = "mailto:"
 
   protected
 
   def prepare_url
-    @url = "mailto:#{@string}"
+    @url = "#{PREFIX}#{@string}"
   end
 
 end
\ No newline at end of file
diff --git a/app/services/contact_details/phone.rb b/app/services/contact_details/phone.rb
index f3556062fd752d2f68b97ef48d1587cd18196abf..be75bbf8f56b0bdaa7c7d492a97363b7e9f7ec98 100644
--- a/app/services/contact_details/phone.rb
+++ b/app/services/contact_details/phone.rb
@@ -1,14 +1,16 @@
 class ContactDetails::Phone < ContactDetails::Base
+  PREFIX = "tel:"
 
   protected
 
   def prepare_url
-    @url = @string.dup
+    super
     @url.remove! ' '
     @url.remove! '.'
+    @url = "#{PREFIX}#{@url}"
   end
 
   def prepare_label
-    @label = @string
+    @label = @url.remove PREFIX
   end
 end
\ No newline at end of file
diff --git a/app/services/contact_details/twitter.rb b/app/services/contact_details/twitter.rb
index b6d48276cec1b715cef01f1c17068ba18f01e2d6..208c93dd58ed90d1a366623b15b18410965d9f63 100644
--- a/app/services/contact_details/twitter.rb
+++ b/app/services/contact_details/twitter.rb
@@ -1,20 +1,19 @@
 class ContactDetails::Twitter < ContactDetails::Base
-  URL = 'https://twitter.com'
+  URL = 'https://twitter.com/'
   DOMAIN = 'twitter.com'
-  
+
   protected
 
   def prepare_url
-    @url = @string
+    super
     @url.remove! DOMAIN if @url.start_with? DOMAIN
     @url.remove! URL if @url.start_with? URL
     @url.delete_suffix! '/'
     @url.delete_prefix! '/'
-    @url = "#{URL}/#{@string}"
+    @url = "#{URL}#{@url}"
   end
-  
+
   def prepare_label
-    super
-    @label.remove! URL
+    @label = @url.remove URL
   end
 end
\ No newline at end of file
diff --git a/app/services/contact_details/website.rb b/app/services/contact_details/website.rb
index 583b03029c123f1b8537cfd7e7447de626f53598..7138658358ee556d1534ec395f65f7b302460de4 100644
--- a/app/services/contact_details/website.rb
+++ b/app/services/contact_details/website.rb
@@ -4,7 +4,7 @@ class ContactDetails::Website < ContactDetails::Base
   protected
 
   def prepare_url
-    @url = @string.to_s
+    super
     @url = "#{PROTOCOL}#{@url}" unless @url.start_with? PROTOCOL
   end
 
diff --git a/app/views/admin/application/static/_contact_detail.html.erb b/app/views/admin/application/static/_contact_detail.html.erb
index 3ac9e3345a57259c95ff6d68e5831c3cc54f79d9..29894af59ed3e34ef1ba1a2da2b83088dc6ea788 100644
--- a/app/views/admin/application/static/_contact_detail.html.erb
+++ b/app/views/admin/application/static/_contact_detail.html.erb
@@ -1,6 +1,8 @@
 <%
 detail = kind.new data
+if detail.present?
 %>
   <%= variable %>:
     label: <%= detail.label %>
-    url: <%= detail.url %>
\ No newline at end of file
+    url: <%= detail.url %>
+<% end %>
\ No newline at end of file
diff --git a/test/services/contact_details_test.rb b/test/services/contact_details_test.rb
index 5f1ec176d6906e36e8ef19039c150a979f6c2946..822a72a1758e0763b6e9e5c8f5a3396613f3938d 100644
--- a/test/services/contact_details_test.rb
+++ b/test/services/contact_details_test.rb
@@ -4,68 +4,68 @@ class ContactDetailsTest < ActiveSupport::TestCase
 
   test "country nil" do
     detail = ContactDetails::Country.new nil
-    assert_equal detail.label, ''
-    assert_equal detail.url, ''
+    assert_nil detail.label
+    assert_nil detail.url
   end
 
   test "country FR" do
     detail = ContactDetails::Country.new 'FR'
-    assert_equal detail.label, 'France'
-    assert_equal detail.url, 'FR'
+    assert_equal 'France', detail.label
+    assert_equal 'FR', detail.url
   end
 
   test "email nil" do
     detail = ContactDetails::Email.new nil
-    assert_equal detail.label, ''
-    assert_equal detail.url, ''
+    assert_nil detail.label
+    assert_nil detail.url
   end
 
   test "email arnaud.levy@noesya.coop" do
     detail = ContactDetails::Email.new 'arnaud.levy@noesya.coop'
-    assert_equal detail.label, 'arnaud.levy@noesya.coop'
-    assert_equal detail.url, 'mailto:arnaud.levy@noesya.coop'
+    assert_equal 'arnaud.levy@noesya.coop', detail.label
+    assert_equal 'mailto:arnaud.levy@noesya.coop', detail.url
   end
 
   test "twitter nil" do
     detail = ContactDetails::Twitter.new nil
-    assert_equal detail.label, ''
-    assert_equal detail.url, ''
+    assert_nil detail.label
+    assert_nil detail.url
   end
 
   test "twitter handle" do
     detail = ContactDetails::Twitter.new 'arnaudlevy'
-    assert_equal detail.label, 'arnaudlevy'
-    assert_equal detail.url, 'https://twitter.com/arnaudlevy'
+    assert_equal 'arnaudlevy', detail.label
+    assert_equal 'https://twitter.com/arnaudlevy', detail.url
   end
 
   test "twitter twitter.com/arnaudlevy" do
     detail = ContactDetails::Twitter.new 'twitter.com/arnaudlevy'
-    assert_equal detail.label, 'arnaudlevy'
-    assert_equal detail.url, 'https://twitter.com/arnaudlevy'
+    assert_equal 'arnaudlevy', detail.label
+    assert_equal 'https://twitter.com/arnaudlevy', detail.url
   end
 
   test "twitter https://twitter.com/arnaudlevy" do
     detail = ContactDetails::Twitter.new 'https://twitter.com/arnaudlevy'
-    assert_equal detail.label, 'arnaudlevy'
-    assert_equal detail.url, 'https://twitter.com/arnaudlevy'
+    assert_equal 'arnaudlevy', detail.label
+    assert_equal 'https://twitter.com/arnaudlevy', detail.url
   end
 
   test "website nil" do
     detail = ContactDetails::Website.new nil
-    assert_equal detail.label, ''
-    assert_equal detail.url, ''
+    assert_nil detail.label
+    assert_nil detail.url
   end
 
   test "website www.noesya.coop" do
     detail = ContactDetails::Website.new 'www.noesya.coop'
-    assert_equal detail.label, 'www.noesya.coop'
-    assert_equal detail.url, 'https://www.noesya.coop'
+    assert_equal 'www.noesya.coop', detail.label
+    assert_equal 'https://www.noesya.coop', detail.url
   end
 
   test "website https://www.noesya.coop" do
     detail = ContactDetails::Website.new 'https://www.noesya.coop'
-    assert_equal detail.label, 'www.noesya.coop'
-    assert_equal detail.url, 'https://www.noesya.coop'
+    assert_equal 'www.noesya.coop', detail.label
+    assert_equal 'https://www.noesya.coop', detail.url
   end
 
 end
\ No newline at end of file