https://staragile.com/blog/top-down-approach-vs-bottom-up-approach