Contract specification from text fields.
Fixes #3
Merge origin/master