Add more comprehensive documentation.