https://itznur07.medium.com/understanding-callback-functions-in-javascript-a-beginners-guide-d3c813a6cd5e