https://www.codementor.io/divyacyclitics15/understanding-different-components-roles-in-data-science-nhtila5at