allow subclasses to throw an exception when initializing