Add more comprehensive documentation