Added documentation, documentation tests, and a dumb generator