https://medium.com/@pathakrajaryan/building-a-flexible-angular-components-a-journey-in-custom-component-development-30d0987a45c9