I would add more docs here (jsdoc)