Add documentation and do some linting