source : https://www.amanhardikar.com/mindmaps/CodeReview.png