Removed an ugly implicit conversion from any type to option - that kind of thing just widens the scope of abuse. Also introduced a convenience constructor for the model class as a consequence.

Tidied up a few other things.

Thanks to @richdougherty for the review.