A days work

Various changes to all sorts of things. See commits for details.

Interface changes:
 parameters are now "required", not "mandatory"
 there are no more "inline" parameters