For marcus and igor.
Now when we work on the core you have some methods with some behavior and since you want to have a small kernel you define some methods in a certain way. Now after you want to load code on top and suddenly you want to change the behavior to use the loaded package. And I do not see how you do it without override (yes you can define a block and get all the core behavior customisable via block and propose setters fro these blocks. Of course there is a risk that another package may override the same methods but the risk is low.
