should be a class method