tidied, added descriptions to classes.  tested some more, fairly
confident it's ok