https://gowbooks.club/book/56527603-design-patterns&from_srp=true&qid=jP0LyP6lbC&rank=1