Well, yesterday I started to refactor this switching the "extends" to the opposite direction.
But I stopped and reverted to this because:
- they share some logic, so it makes sense that one extends the other
- the one with more custom code will be the kernel class, as installing extensions is mostly a matter of setting the correct dir
- after all the fact that it sounds weird is just not tied to any technical reason, just an idea which you have when you approach the code.
Other idea: refactor both installers to extends a base LegacyInstaller