diff --git a/manifests/config.pp b/manifests/config.pp
index bbfb2036af286ede9e8ec838647353a0d38ead85..72d5e6dd78c2ab9c482ae8216ba47e55b7aeb33e 100644
--- a/manifests/config.pp
+++ b/manifests/config.pp
@@ -1,38 +1,38 @@
-/*
-== Definition: postfix::config
-
-Uses the "postconf" command to add/alter/remove options in postfix main
-configuation file (/etc/postfix/main.cf).
-
-Parameters:
-- *name*: name of the parameter.
-- *ensure*: present/absent. defaults to present.
-- *value*: value of the parameter.
-
-Requires:
-- Class["postfix"]
-
-Example usage:
-
-  node "toto.example.com" {
-
-    include postfix
-
-    postfix::config {
-      "smtp_use_tls"            => "yes";
-      "smtp_sasl_auth_enable"   => "yes";
-      "smtp_sasl_password_maps" => "hash:/etc/postfix/my_sasl_passwords";
-      "relayhost"               => "[mail.example.com]:587";
-    }
-  }
-
-*/
-define postfix::config ($ensure = present, $value) {
+#
+#== Definition: postfix::config
+#
+#Uses the "postconf" command to add/alter/remove options in postfix main
+#configuation file (/etc/postfix/main.cf).
+#
+#Parameters:
+#- *name*: name of the parameter.
+#- *ensure*: present/absent. defaults to present.
+#- *value*: value of the parameter.
+#
+#Requires:
+#- Class["postfix"]
+#
+#Example usage:
+#
+#  node "toto.example.com" {
+#
+#    include postfix
+#
+#    postfix::config {
+#      "smtp_use_tls"            => "yes";
+#      "smtp_sasl_auth_enable"   => "yes";
+#      "smtp_sasl_password_maps" => "hash:/etc/postfix/my_sasl_passwords";
+#      "relayhost"               => "[mail.example.com]:587";
+#    }
+#  }
+#
+#
+define postfix::config ($value, $ensure = present) {
 
   Augeas {
-    context => "/files/etc/postfix/main.cf",
-    notify  => Service["postfix"],
-    require => File["/etc/postfix/main.cf"],
+    context => '/files/etc/postfix/main.cf',
+    notify  => Service['postfix'],
+    require => File['/etc/postfix/main.cf'],
   }
 
   case $ensure {
@@ -41,11 +41,11 @@ define postfix::config ($ensure = present, $value) {
         changes => "set $name $value",
       }
     }
-
     absent: {
       augeas { "rm postfix '${name}'":
         changes => "rm $name",
       }
     }
+    default: {}
   }
 }
diff --git a/manifests/hash.pp b/manifests/hash.pp
index 8d610e703dd63db7566a324ea0472a641b3827a6..c12a48c48596844dda7fe82165c7537a66bc9e0f 100644
--- a/manifests/hash.pp
+++ b/manifests/hash.pp
@@ -1,42 +1,40 @@
-/*
-== Definition: postfix::hash
-
-Creates postfix hashed "map" files. It will create "${name}", and then build
-"${name}.db" using the "postmap" command. The map file can then be referred to
-using postfix::config.
-
-Parameters:
-- *name*: the name of the map file.
-- *ensure*: present/absent, defaults to present.
-- *source*: file source.
-
-Requires:
-- Class["postfix"]
-
-Example usage:
-
-  node "toto.example.com" {
-
-    include postfix
-
-    postfix::hash { "/etc/postfix/virtual":
-      ensure => present,
-    }
-    postfix::config { "virtual_alias_maps":
-      value => "hash:/etc/postfix/virtual"
-    }
-  }
-
-*/
-define postfix::hash ($ensure="present", $source = false) {
+#== Definition: postfix::hash
+#
+#Creates postfix hashed "map" files. It will create "${name}", and then build
+#"${name}.db" using the "postmap" command. The map file can then be referred to
+#using postfix::config.
+#
+#Parameters:
+#- *name*: the name of the map file.
+#- *ensure*: present/absent, defaults to present.
+#- *source*: file source.
+#
+#Requires:
+#- Class["postfix"]
+#
+#Example usage:
+#
+#  node "toto.example.com" {
+#
+#    include postfix
+#
+#    postfix::hash { "/etc/postfix/virtual":
+#      ensure => present,
+#    }
+#    postfix::config { "virtual_alias_maps":
+#      value => "hash:/etc/postfix/virtual"
+#    }
+#  }
+#
+define postfix::hash ($ensure='present', $source = false) {
 
   # selinux labels differ from one distribution to another
-  case $operatingsystem {
+  case $::operatingsystem {
 
     RedHat, CentOS: {
-      case $lsbmajdistrelease {
-        "4":     { $postfix_seltype = "etc_t" }
-        "5","6": { $postfix_seltype = "postfix_etc_t" }
+      case $::lsbmajdistrelease {
+        '4':     { $postfix_seltype = 'etc_t' }
+        '5','6': { $postfix_seltype = 'postfix_etc_t' }
         default: { $postfix_seltype = undef }
       }
     }
@@ -48,40 +46,40 @@ define postfix::hash ($ensure="present", $source = false) {
 
   case $source {
     false: {
-      file {"${name}":
+      file {$name:
         ensure  => $ensure,
-        mode    => 600,
+        mode    => '0600',
         owner   => root,
         group   => root,
         seltype => $postfix_seltype,
-        require => Package["postfix"],
+        require => Package['postfix'],
       }
     }
     default: {
-      file {"${name}":
+      file {$name:
         ensure  => $ensure,
-        mode    => 600,
+        mode    => '0600',
         owner   => root,
         group   => root,
         source  => $source,
         seltype => $postfix_seltype,
-        require => Package["postfix"],
+        require => Package['postfix'],
       }
     }
   }
 
   file {"${name}.db":
     ensure  => $ensure,
-    mode    => 600,
-    require => [File["${name}"], Exec["generate ${name}.db"]],
+    mode    => '0600',
+    require => [File[$name], Exec["generate ${name}.db"]],
     seltype => $postfix_seltype,
   }
 
   exec {"generate ${name}.db":
-    command => "postmap ${name}",
-    #creates => "${name}.db", # this prevents postmap from being run !
-    subscribe => File["${name}"],
+    command     => "postmap ${name}",
+    #creates    => "${name}.db", # this prevents postmap from being run !
+    subscribe   => File[$name],
     refreshonly => true,
-    require => Package["postfix"],
+    require     => Package['postfix'],
   }
 }
diff --git a/manifests/init.pp b/manifests/init.pp
index 84d9e1423e2685e0d61c8a18901fe4d3ca319ac2..ab7b1d88995f639e57dbe3ee8992c70fac9e6b03 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -5,25 +5,26 @@
 # delivery and an SMTP server listening on the loopback interface.
 #
 # Parameters:
-# - *$postfix_smtp_listen*: address on which the smtp service will listen to. defaults to 127.0.0.1
-# - *$root_mail_recipient*: who will recieve root's emails. defaults to "nobody"
+# - *$postfix_smtp_listen*: address on which the smtp service will listen to.
+#      defaults to 127.0.0.1
+# - *$root_mail_recipient*: who will recieve root's emails. defaults to 'nobody'
 #
 # Example usage:
 #
-#   node "toto.example.com" {
-#     $postfix_smtp_listen = "192.168.1.10"
+#   node 'toto.example.com' {
+#     $postfix_smtp_listen = '192.168.1.10'
 #     include postfix
 #   }
 #
 class postfix {
 
   # selinux labels differ from one distribution to another
-  case $operatingsystem {
+  case $::operatingsystem {
 
     RedHat, CentOS: {
-      case $lsbmajdistrelease {
-        "4":     { $postfix_seltype = "etc_t" }
-        "5","6": { $postfix_seltype = "postfix_etc_t" }
+      case $::lsbmajdistrelease {
+        '4':     { $postfix_seltype = 'etc_t' }
+        '5','6': { $postfix_seltype = 'postfix_etc_t' }
         default: { $postfix_seltype = undef }
       }
     }
@@ -34,120 +35,124 @@ class postfix {
   }
 
   # Default value for various options
-  case $postfix_smtp_listen {
-    "": { $postfix_smtp_listen = "127.0.0.1" }
+  if $postfix_smtp_listen == '' {
+    $postfix_smtp_listen = '127.0.0.1'
   }
-  case $root_mail_recipient {
-    "":   { $root_mail_recipient = "nobody" }
+  if $root_mail_recipient == '' {
+    $root_mail_recipient = 'nobody'
   }
-  case $postfix_use_amavisd {
-    "": { $postfix_use_amavisd = "no" }
+  if $postfix_use_amavisd == '' {
+    $postfix_use_amavisd = 'no'
   }
-  case $postfix_use_dovecot_lda {
-    "": { $postfix_use_dovecot_lda = "no" }
+  if $postfix_use_dovecot_lda == '' {
+    $postfix_use_dovecot_lda = 'no'
   }
-  case $postfix_use_schleuder {
-    "": { $postfix_use_schleuder = "no" }
+  if $postfix_use_schleuder == '' {
+    $postfix_use_schleuder = 'no'
   }
-  case $postfix_use_sympa {
-    "": { $postfix_use_sympa = "no" }
+  if $postfix_use_sympa == '' {
+    $postfix_use_sympa = 'no'
   }
-  case $postfix_mail_user {
-    "": { $postfix_mail_user = "vmail" }
+  if $postfix_mail_user == '' {
+    $postfix_mail_user = 'vmail'
   }
 
+  $mailx_package = $::lsbdistrelease ? {
+    'squeeze' => 'bsd-mailx',
+    'lucid'   => 'bsd-mailx',
+    default   => 'mailx',
+  }
 
-  package { "postfix":
-    ensure => installed
+  $master_os_template = $::operatingsystem ? {
+    /RedHat|CentOS/          => 'postfix/master.cf.redhat.erb',
+    /Debian|Ubuntu|kFreeBSD/ => 'postfix/master.cf.debian.erb',
   }
 
-  package { "mailx":
+  package { 'postfix':
     ensure => installed,
-    name   => $lsbdistcodename ? {
-      "squeeze" => "bsd-mailx",
-      "lucid"   => "bsd-mailx",
-      default   => "mailx",
-    },
   }
 
-  service { "postfix":
+  package { 'mailx':
+    ensure => installed,
+    name   => $mailx_package,
+  }
+
+  service { 'postfix':
     ensure    => running,
     enable    => true,
     hasstatus => true,
-    restart   => "/etc/init.d/postfix reload",
-    require   => Package["postfix"],
+    restart   => '/etc/init.d/postfix reload',
+    require   => Package['postfix'],
   }
 
-  file { "/etc/mailname":
+  file { '/etc/mailname':
     ensure  => present,
-    content => "${fqdn}\n",
+    content => "$::fqdn\n",
     seltype => $postfix_seltype,
   }
 
   # Aliases
-  file { "/etc/aliases":
-    ensure => present,
-    content => "# file managed by puppet\n",
+  file { '/etc/aliases':
+    ensure  => present,
+    content => '# file managed by puppet\n',
     replace => false,
     seltype => $postfix_seltype,
-    notify => Exec["newaliases"],
+    notify  => Exec['newaliases'],
   }
 
   # Aliases
-  exec { "newaliases":
-    command     => "/usr/bin/newaliases",
+  exec { 'newaliases':
+    command     => '/usr/bin/newaliases',
     refreshonly => true,
-    require     => Package["postfix"],
-    subscribe   => File["/etc/aliases"],
+    require     => Package['postfix'],
+    subscribe   => File['/etc/aliases'],
   }
 
   # Config files
-  file { "/etc/postfix/master.cf":
+  file { '/etc/postfix/master.cf':
     ensure  => present,
-    owner => "root",
-    group => "root",
-    mode => "0644",
-    content => $operatingsystem ? {
-      /RedHat|CentOS/ => template("postfix/master.cf.redhat.erb", "postfix/master.cf.common.erb"),
-      /Debian|Ubuntu|kFreeBSD/ => template("postfix/master.cf.debian.erb", "postfix/master.cf.common.erb"),
-    },
+    owner   => 'root',
+    group   => 'root',
+    mode    => '0644',
+    content => $master_os_template,
     seltype => $postfix_seltype,
-    notify  => Service["postfix"],
-    require => Package["postfix"],
+    notify  => Service['postfix'],
+    require => Package['postfix'],
   }
 
   # Config files
-  file { "/etc/postfix/main.cf":
+  file { '/etc/postfix/main.cf':
     ensure  => present,
-    owner => "root",
-    group => "root",
-    mode => "0644",
-    source  => "puppet:///modules/postfix/main.cf",
+    owner   => 'root',
+    group   => 'root',
+    mode    => '0644',
+    source  => 'puppet:///modules/postfix/main.cf',
     replace => false,
     seltype => $postfix_seltype,
-    notify  => Service["postfix"],
-    require => Package["postfix"],
+    notify  => Service['postfix'],
+    require => Package['postfix'],
   }
 
   # Default configuration parameters
   postfix::config {
-    "myorigin":   value => "${fqdn}";
-    "alias_maps": value => "hash:/etc/aliases";
-    "inet_interfaces": value => "all";
+    'myorigin':         value => $::fqdn;
+    'alias_maps':       value => 'hash:/etc/aliases';
+    'inet_interfaces':  value => 'all';
   }
 
-  case $operatingsystem {
+  case $::operatingsystem {
     RedHat, CentOS: {
       postfix::config {
-        "sendmail_path": value => "/usr/sbin/sendmail.postfix";
-        "newaliases_path": value => "/usr/bin/newaliases.postfix";
-        "mailq_path": value => "/usr/bin/mailq.postfix";
+        'sendmail_path':    value => '/usr/sbin/sendmail.postfix';
+        'newaliases_path':  value => '/usr/bin/newaliases.postfix';
+        'mailq_path':       value => '/usr/bin/mailq.postfix';
       }
     }
+    default: {}
   }
 
-  mailalias {"root":
+  mailalias {'root':
     recipient => $root_mail_recipient,
-    notify    => Exec["newaliases"],
+    notify    => Exec['newaliases'],
   }
 }
diff --git a/manifests/ldap.pp b/manifests/ldap.pp
index 36c0d402bf22d2b57e644fd06a973338fa9b9174..403bcd53bf4b4c01b1e096b37425bd997f3546c9 100644
--- a/manifests/ldap.pp
+++ b/manifests/ldap.pp
@@ -1,19 +1,19 @@
 class postfix::ldap inherits postfix {
-  Postfix::Config["alias_maps"] {
-    value => "'hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf'",
+  Postfix::Config['alias_maps'] {
+    value => '"hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf"',
   }
 
-  package {"postfix-ldap": }
+  package {'postfix-ldap': }
 
-  if ! $postfix_ldap_base {
+  if ! $::postfix_ldap_base {
     fail 'Missing $postfix_ldap_base !'
   }
 
-  file {"/etc/postfix/ldap-aliases.cf":
+  file {'/etc/postfix/ldap-aliases.cf':
     ensure  => present,
     owner   => root,
     group   => postfix,
-    content => template("postfix/postfix-ldap-aliases.cf.erb"),
-    require => Package["postfix-ldap"],
+    content => template('postfix/postfix-ldap-aliases.cf.erb'),
+    require => Package['postfix-ldap'],
   }
 }
diff --git a/manifests/mailman.pp b/manifests/mailman.pp
index ca58caadecf576a06da7804a74d9111cf5a9e3b9..c3eb7e8a1d22320984f9fa8173947c9037266dba 100644
--- a/manifests/mailman.pp
+++ b/manifests/mailman.pp
@@ -5,30 +5,33 @@
 # manager.
 #
 # Parameters:
-# - every global variable which works for class "postfix" will work here.
+# - every global variable which works for class 'postfix' will work here.
 #
 # Example usage:
 #
-#   node "toto.example.com" {
+#   node 'toto.example.com' {
 #     include mailman
 #     include postfix::mailman
 #   }
 #
 class postfix::mailman {
-  $postfix_smtp_listen = "0.0.0.0"
+  $postfix_smtp_listen = '0.0.0.0'
   include postfix
 
   postfix::config {
-    "virtual_alias_maps":                   value => "hash:/etc/postfix/virtual";
-    "transport_maps":                       value => "hash:/etc/postfix/transport";
-    "mailman_destination_recipient_limit":  value => "1";
+    'virtual_alias_maps':
+      value => 'hash:/etc/postfix/virtual';
+    'transport_maps':
+      value => 'hash:/etc/postfix/transport';
+    'mailman_destination_recipient_limit':
+      value => '1';
   }
 
-  postfix::hash { "/etc/postfix/virtual":
+  postfix::hash { '/etc/postfix/virtual':
     ensure => present,
   }
 
-  postfix::hash { "/etc/postfix/transport":
+  postfix::hash { '/etc/postfix/transport':
     ensure => present,
   }
 
diff --git a/manifests/mta.pp b/manifests/mta.pp
index 16b1981265a21ecad2d88c14ca18cde1c7b59972..590907e3439ec4dc9a084cfe12837eb0ad40f06f 100644
--- a/manifests/mta.pp
+++ b/manifests/mta.pp
@@ -13,48 +13,50 @@
 # Parameters:
 # - *$postfix_relayhost*
 # - *$postfix_mydestination*
-# - every global variable which works for class "postfix" will work here.
+# - every global variable which works for class 'postfix' will work here.
 #
 # Example usage:
 #
-#   node "toto.example.com" {
-#     $postfix_relayhost = "mail.example.com"
-#     $postfix_smtp_listen = "0.0.0.0"
-#     $postfix_mydestination = "\$myorigin, myapp.example.com"
+#   node 'toto.example.com' {
+#     $postfix_relayhost = 'mail.example.com'
+#     $postfix_smtp_listen = '0.0.0.0'
+#     $postfix_mydestination = '\$myorigin, myapp.example.com'
 #
 #     include postfix::mta
 #
-#     postfix::transport { "myapp.example.com":
+#     postfix::transport { 'myapp.example.com':
 #       ensure => present,
-#       destination => "local:",
+#       destination => 'local:',
 #     }
 #   }
 #
 class postfix::mta {
 
-  case $postfix_relayhost {
-    "":   { fail("Required \$postfix_relayhost variable is not defined.") }
+  case $::postfix_relayhost {
+    '':      { fail('Required \$postfix_relayhost variable is not defined.') }
+    default: {}
   }
 
-  case $postfix_mydestination {
-    "": { $postfix_mydestination = "\$myorigin" }
+  case $::postfix_mydestination {
+    '':      { $postfix_mydestination = '\$myorigin' }
+    default: {}
   }
 
   include postfix
 
   postfix::config {
-    "mydestination":                        value => $postfix_mydestination;
-    "mynetworks":                           value => "127.0.0.0/8";
-    "relayhost":                            value => $postfix_relayhost;
-    "virtual_alias_maps":                   value => "hash:/etc/postfix/virtual";
-    "transport_maps":                       value => "hash:/etc/postfix/transport";
+    'mydestination':       value => $::postfix_mydestination;
+    'mynetworks':          value => '127.0.0.0/8';
+    'relayhost':           value => $::postfix_relayhost;
+    'virtual_alias_maps':  value => 'hash:/etc/postfix/virtual';
+    'transport_maps':      value => 'hash:/etc/postfix/transport';
   }
 
-  postfix::hash { "/etc/postfix/virtual":
+  postfix::hash { '/etc/postfix/virtual':
     ensure => present,
   }
 
-  postfix::hash { "/etc/postfix/transport":
+  postfix::hash { '/etc/postfix/transport':
     ensure => present,
   }
 
diff --git a/manifests/satellite.pp b/manifests/satellite.pp
index cb92a9f7e168a62fa3135ae48df0fe4ef8cf3448..93462a129293db95c3eab17ddce721ab00373bc8 100644
--- a/manifests/satellite.pp
+++ b/manifests/satellite.pp
@@ -9,14 +9,14 @@
 #
 # Parameters:
 # - *valid_fqdn*
-# - every global variable which works for class "postfix" will work here.
+# - every global variable which works for class 'postfix' will work here.
 #
 # Example usage:
 #
-#   node "toto.local.lan" {
-#     $postfix_relayhost = "mail.example.com"
-#     $valid_fqdn = "toto.example.com"
-#     $root_mail_recipient = "the.sysadmin@example.com"
+#   node 'toto.local.lan' {
+#     $postfix_relayhost = 'mail.example.com'
+#     $valid_fqdn = 'toto.example.com'
+#     $root_mail_recipient = 'the.sysadmin@example.com'
 #
 #     include postfix::satellite
 #   }
@@ -25,14 +25,14 @@ class postfix::satellite {
 
   # If $valid_fqdn exists, use it to override $fqdn
   case $valid_fqdn {
-    "":      { $valid_fqdn = $fqdn }
-    default: { $fqdn = "${valid_fqdn}" }
+    '':      { $valid_fqdn = $::fqdn }
+    default: { $fqdn = $valid_fqdn }
   }
 
   include postfix::mta
 
-  postfix::virtual {"@${valid_fqdn}":
+  postfix::virtual { "@${valid_fqdn}":
     ensure      => present,
-    destination => "root",
+    destination => 'root',
   }
 }
diff --git a/manifests/transport.pp b/manifests/transport.pp
index c3da390b37745e70041b16f99ec5edeb49ccd114..6eea715ffc4ca3f94be26296bd9139f0124306a8 100644
--- a/manifests/transport.pp
+++ b/manifests/transport.pp
@@ -1,44 +1,42 @@
-/*
-== Definition: postfix::transport
-
-Manages content of the /etc/postfix/transport map.
-
-Parameters:
-- *name*: name of address postfix will lookup. See transport(5).
-- *destination*: where the emails will be delivered to. See transport(5).
-- *ensure*: present/absent, defaults to present.
-
-Requires:
-- Class["postfix"]
-- Postfix::Hash["/etc/postfix/transport"]
-- Postfix::Config["transport_maps"]
-- common::line (from module common)
-
-Example usage:
-
-  node "toto.example.com" {
-
-    include postfix
-
-    postfix::hash { "/etc/postfix/transport":
-      ensure => present,
-    }
-    postfix::config { "transport_maps":
-      value => "hash:/etc/postfix/transport"
-    }
-    postfix::transport { "mailman.example.com":
-      ensure      => present,
-      destination => "mailman",
-    }
-  }
-
-*/
-define postfix::transport ($ensure="present", $destination) {
+#== Definition: postfix::transport
+#
+#Manages content of the /etc/postfix/transport map.
+#
+#Parameters:
+#- *name*: name of address postfix will lookup. See transport(5).
+#- *destination*: where the emails will be delivered to. See transport(5).
+#- *ensure*: present/absent, defaults to present.
+#
+#Requires:
+#- Class["postfix"]
+#- Postfix::Hash["/etc/postfix/transport"]
+#- Postfix::Config["transport_maps"]
+#- common::line (from module common)
+#
+#Example usage:
+#
+#  node "toto.example.com" {
+#
+#    include postfix
+#
+#    postfix::hash { "/etc/postfix/transport":
+#      ensure => present,
+#    }
+#    postfix::config { "transport_maps":
+#      value => "hash:/etc/postfix/transport"
+#    }
+#    postfix::transport { "mailman.example.com":
+#      ensure      => present,
+#      destination => "mailman",
+#    }
+#  }
+#
+define postfix::transport ($destination, $ensure='present') {
   common::line {"${name} ${destination}":
-    ensure => $ensure,
-    file   => "/etc/postfix/transport",
-    line   => "${name} ${destination}",
-    notify => Exec["generate /etc/postfix/transport.db"],
-    require => Package["postfix"],
+    ensure  => $ensure,
+    file    => '/etc/postfix/transport',
+    line    => "${name} ${destination}",
+    notify  => Exec['generate /etc/postfix/transport.db'],
+    require => Package['postfix'],
   }
 }
diff --git a/manifests/virtual.pp b/manifests/virtual.pp
index 37d9ad7b34818831d049d5a87dffa3f85fe2dc02..f5ec16a7377d75b9775fa3f062948b63d96dd1c6 100644
--- a/manifests/virtual.pp
+++ b/manifests/virtual.pp
@@ -1,44 +1,42 @@
-/*
-== Definition: postfix::virtual
-
-Manages content of the /etc/postfix/virtual map.
-
-Parameters:
-- *name*: name of address postfix will lookup. See virtual(8).
-- *destination*: where the emails will be delivered to. See virtual(8).
-- *ensure*: present/absent, defaults to present.
-
-Requires:
-- Class["postfix"]
-- Postfix::Hash["/etc/postfix/virtual"]
-- Postfix::Config["virtual_alias_maps"]
-- common::line (from module common)
-
-Example usage:
-
-  node "toto.example.com" {
-
-    include postfix
-
-    postfix::hash { "/etc/postfix/virtual":
-      ensure => present,
-    }
-    postfix::config { "virtual_alias_maps":
-      value => "hash:/etc/postfix/virtual"
-    }
-    postfix::virtual { "user@example.com":
-      ensure      => present,
-      destination => "root",
-    }
-  }
-
-*/
-define postfix::virtual ($ensure="present", $destination) {
+#== Definition: postfix::virtual
+#
+#Manages content of the /etc/postfix/virtual map.
+#
+#Parameters:
+#- *name*: name of address postfix will lookup. See virtual(8).
+#- *destination*: where the emails will be delivered to. See virtual(8).
+#- *ensure*: present/absent, defaults to present.
+#
+#Requires:
+#- Class["postfix"]
+#- Postfix::Hash["/etc/postfix/virtual"]
+#- Postfix::Config["virtual_alias_maps"]
+#- common::line (from module common)
+#
+#Example usage:
+#
+#  node "toto.example.com" {
+#
+#    include postfix
+#
+#    postfix::hash { "/etc/postfix/virtual":
+#      ensure => present,
+#    }
+#    postfix::config { "virtual_alias_maps":
+#      value => "hash:/etc/postfix/virtual"
+#    }
+#    postfix::virtual { "user@example.com":
+#      ensure      => present,
+#      destination => "root",
+#    }
+#  }
+#
+define postfix::virtual ($destination, $ensure = 'present') {
   common::line {"${name} ${destination}":
-    ensure => $ensure,
-    file   => "/etc/postfix/virtual",
-    line   => "${name} ${destination}",
-    notify => Exec["generate /etc/postfix/virtual.db"],
-    require => Package["postfix"],
+    ensure  => $ensure,
+    file    => '/etc/postfix/virtual',
+    line    => "${name} ${destination}",
+    notify  => Exec['generate /etc/postfix/virtual.db'],
+    require => Package['postfix'],
   }
 }
diff --git a/tests/init.pp b/tests/init.pp
new file mode 100644
index 0000000000000000000000000000000000000000..42a78820aa528da1e28db8e589966579d8cadc12
--- /dev/null
+++ b/tests/init.pp
@@ -0,0 +1 @@
+include postfix