Re-arrange some code and start working on the docs
Update documentation format and auto generate everything into DOC.md
Update tests and build