improve documentation
clean up comments