Initial commit.
Documentation work in progress. Code changed when comments need updating.