add unit tests
jsdoc fix
add apidocs