The bigger the options toolbelt, the more power we have. What is one of our main goals when working on a solution? Isn’t it to provide simplicity, decoupling and separation to a certain degree, that it will not overcomplicate our solution but keep the code clean enough to not be sullied by all sorts of overhead requirements. And this is always a balance that we are trying to achieve. This enables us to focus on solving domain problems, instead of us looking at code that can be convoluted with all sorts of none domain-related structural requirements.