in reply to inheritance and can

Frankly, when you start needing to do something tricky like this, it usually means you're doing something wrong, and working harder than you need to. There has to be a simpler solution. In this case, I'd suggest you just make your additional init method be called something else, make it a no-op method in the base class, override it in the one class that needs to, and just always call it. Re-blessing the class from a base class sounds really fishy too, but since I don't know why you're doing it I can't easilly suggest an alternative.