I made it a classmethod since we are validating the given tab before instantiating the object. 
Do you mean should I make it a static method?  Does the correct static method get called on a derived class when called from the super class?