Improve documentation throughout