use destructuring to better match the books implementation