Side Note: I don't like the word "blueprint" for these problems. There are patterns, I agree. But memorization of code snippets and patterns will rob you of true learning. You won't learn how to think on your own. Don't learn templates, know what is going on deeply.