Very very good book by Daniel Ingram, available for free. Recommend reading the first 50-100 pages at first Some quick excerpts: