Introduced Tryer

Reduces boilerplate a little; more importantly, this demands some
desireable coding standards, such as always producing a PublicException
when something goes wrong.