Possibly crazy idea: should perform_raw be an instance method?  Any reason it needs to be a class method?