Added lots of javadoc comments. Read them all so you know how to do
things.