Contract specification from text fields.
Fixes #3