The pattern is extremely operational, meaning that if you do
not implement it properly, you will know the first time you test the code.
Besides, there is not that much to get wrong.
So, it is very unlikely that you will end up doing something
which prevents you from achieving the extensibility desired.