looks like there's a lot of repeated code here with specifying the `type`, the `headers`, etc. Maybe make it its own method, or find a merge for two objects to simulate "defaults"