preprocess should be a class method, not static