add more detailed jsdoc