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.