thorough documentation