add missing documentation
clean up and document