`eval` has to be a classmethod, because it has to be called before the instance is created (because it is the very function that defines whether an instance of the class or something else will be returned from the constructor).