Contract Definition

Results of discussions in #40, #19, #37, #41 and #46