write a thorough documentation in Markdown format. Later need to be converted to readdocs.io or github pages