https://stacks.pythonprogramminghelp.com/break-all-the-rules-and-swift/