improve documentation and tighten checkstyle