rewrote jsdoc for dox [ci skip]