refactor request to have simpler interface

@jish @grosser @marcosvm