Tried to adjust all of Edward's comments

Hi Edward,

Pull request for my latest changes, assuming I'm operating Github correctly ;-)  I wonder whether I should just drop that last small section (types as light-weight contracts), as it does feel a bit tacked on and it is quite simple...  See what you think.

Neil.