https://mysteryweevil.medium.com/understanding-callback-functions-in-javascript-a-practical-guide-for-beginners-07cdd52ec853