https://javascript.plainenglish.io/a-beginners-guide-to-iife-understanding-immediately-invoked-function-expressions-5014aa5deba2