added generate request method