Needs proper JSDoc