Reorganize and refactor
Add basic documentation using Thingdoc