https://www.csharp-home.com/a-10-point-plan-for-without-being-overwhelmed-2/