https://medium.com/@gmdebugcloud/day-4-structure-and-interpretation-of-computer-program-made-me-feel-like-a-fraud-80de2a9e7c69