Feature: Add documentation and a documentation generator