diff --git a/.travis.yml b/.travis.yml
index b9cc4dc8..3e5bb881 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,6 +26,13 @@ matrix:
install:
- travis_retry pip install tox
+# For Selenium
+# https://docs.travis-ci.com/user/gui-and-headless-browsers/
+before_script:
+ - "export DISPLAY=:99.0"
+ - "sh -e /etc/init.d/xvfb start"
+ - sleep 3 # give xvfb some time to start
+
script:
- travis_retry tox
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
new file mode 100644
index 00000000..d7e67a63
--- /dev/null
+++ b/CONTRIBUTING.rst
@@ -0,0 +1,63 @@
+============
+Contributing
+============
+
+.. contents:: :local:
+
+Discuss first
+-------------
+
+For changes open an issue p on Github for discussion preferably before starting any coding. Ask the authors opinion how the issue should be approached as this will make it easier to merge the pull request later.
+
+Unit tests
+----------
+
+All features must be covered by unit tests, so that test coverage stays in 100%.
+
+To run tests::
+
+ pip install tox # System wide installation
+ tox
+
+This will run tests for Python 2.x, Python 3.x, PyPy, functional, coverage, documentation.
+
+Functional tests
+----------------
+
+All features must be covered by functional tests and have example use. To run functional tests only::
+
+ tox -e functional
+
+.. to edit functional tests::
+
+ source .tox/functional/bin/activate
+ cd deformdefom # Checked out by tox functional
+ pserve demo.ini # Start web server
+
+ # Run functional test suite using Chrome
+ WEBDRIVER="chrome" nosetests -x
+
+ # Run functional test suite using Chrome, stop on pdb on exception
+ WEBDRIVER="chrome" nosetests -x --pdb
+
+ # Run one functional test case using Chrome
+ WEBDRIVER="chrome" nosetests -x deformdemo.test:SequenceOfDateInputs
+
+Documentation
+-------------
+
+All features must be documented with code samples in narrative documentation, API documentation or deformdeom.
+
+Changelog
+---------
+
+Update ``CHANGES.txt``.
+
+Update ``CONTRIBUTORS.rst``.
+
+Pull requests
+-------------
+
+Make pull request on github for deform, deformdemo.
+
+
diff --git a/README.rst b/README.rst
index c42f8933..1bb4c7c6 100644
--- a/README.rst
+++ b/README.rst
@@ -14,7 +14,7 @@ Deform
Deform is a Python HTML form library. You can easily create forms for your application. Deform can do complex forms with JavaScript integration, like nested forms where you need add and remove subform items. Date and time picking widgets and other rich widgets are supported out of the box.
-Deform comes with default `Chameleon templates `_ for `Bootstrap `_ based widgets. It uses `Colander `_ as for form schema and validation definitions. Deform integrates well with `Pyramid web framework `_ and several other web frameworks.
+Deform comes with default `Chameleon templates `_ for `Bootstrap `_ based widgets. It uses `Colander `_ as for form schema and validation definitions. Deform integrates well with `Pyramid web framework `_ and several other web frameworks. Peppercorn library is used to convert flat HTML name value mapping form submissions to stream of name value mappings submissions, allowing building complex and nested form structure.
Please see http://docs.pylonsproject.org/projects/deform/en/latest/ for the
documentation.
diff --git a/contributing.md b/contributing.md
deleted file mode 100644
index 407b6cfb..00000000
--- a/contributing.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Contributing
-
-See [README.rst](https://github.com/Pylons/deform/blob/master/README.rst).
diff --git a/deform/locale/deform.pot b/deform/locale/deform.pot
index 035f133a..e69de29b 100644
--- a/deform/locale/deform.pot
+++ b/deform/locale/deform.pot
@@ -1,121 +0,0 @@
-# Translations template for deform.
-# Copyright (C) 2013 ORGANIZATION
-# This file is distributed under the same license as the deform project.
-# FIRST AUTHOR , 2013.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: deform 2.0a2\n"
-"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2013-11-16 15:42+0900\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 1.3\n"
-
-#: deform/schema.py:103
-msgid "${value} is not a dictionary"
-msgstr ""
-
-#: deform/schema.py:110
-msgid "${value} has no ${key} key"
-msgstr ""
-
-#: deform/widget.py:656 deform/widget.py:1662
-msgid "Incomplete date"
-msgstr ""
-
-#: deform/widget.py:659
-msgid "Incomplete time"
-msgstr ""
-
-#: deform/widget.py:1157
-msgid "Fields did not match"
-msgstr ""
-
-#: deform/widget.py:1158
-msgid "Value"
-msgstr ""
-
-#: deform/widget.py:1159
-msgid "Confirm Value"
-msgstr ""
-
-#: deform/widget.py:1216
-msgid "Password did not match confirm"
-msgstr ""
-
-#: deform/widget.py:1373
-msgid "Add ${subitem_title}"
-msgstr ""
-
-#: deform/templates/checked_password.pt:8
-msgid "Password"
-msgstr ""
-
-#: deform/templates/checked_password.pt:18
-msgid "Confirm Password"
-msgstr ""
-
-#: deform/templates/dateparts.pt:10
-msgid "Year"
-msgstr ""
-
-#: deform/templates/dateparts.pt:18
-msgid "Month"
-msgstr ""
-
-#: deform/templates/dateparts.pt:26
-msgid "Day"
-msgstr ""
-
-#: deform/templates/datetimeinput.pt:10
-msgid "Date"
-msgstr ""
-
-#: deform/templates/datetimeinput.pt:17
-msgid "Time"
-msgstr ""
-
-#: deform/templates/form.pt:34
-msgid "There was a problem with your submission"
-msgstr ""
-
-#: deform/templates/mapping.pt:13
-msgid "There was a problem with this section"
-msgstr ""
-
-#. Default: en
-#: deform/templates/richtext.pt:30
-msgid "language-code"
-msgstr ""
-
-#: deform/templates/sequence_item.pt:23
-msgid "Reorder (via drag and drop)"
-msgstr ""
-
-#: deform/templates/sequence_item.pt:28
-msgid "Remove"
-msgstr ""
-
-#: deform/templates/readonly/checkbox.pt:5
-msgid "True"
-msgstr ""
-
-#: deform/templates/readonly/checkbox.pt:9
-msgid "False"
-msgstr ""
-
-#: deform/templates/readonly/checked_password.pt:2
-#: deform/templates/readonly/password.pt:2
-msgid "Password not displayed."
-msgstr ""
-
-#: deform/tests/test_widget.py:1550
-msgid "Yo ${subitem_title}"
-msgstr ""
-
diff --git a/deform/templates/dateinput.pt b/deform/templates/dateinput.pt
index b417a2e1..24c1e664 100644
--- a/deform/templates/dateinput.pt
+++ b/deform/templates/dateinput.pt
@@ -7,17 +7,16 @@
${field.end_mapping()}