Initial revision and documentation.