tested implementation with jsdocs
completed docs