https://medium.com/sparklearn/the-ai-handbook-a-casual-approach-to-understanding-artificial-intelligence-8c2761c1992b