framework, code for 1-4.

Start of the documentation, plus the code meeting objectives 1 through
4.