#119: restore more functionality

This restores some more functionality vs the test battery.

The majority of tests now pass - although some have had to be
slightly altered.

Hopefully, this puts us on a more testable footing for developing
(and fixing).

@hjoliver, please review.