add pay method, exception, model