https://all-learning.com/5-best-design-patterns-book-to-look-for/