reform the api