That could probably be broken down into 1 or 2 methods, I just don't think the call method needs all of that logic around how the payload (whether its the body directly or not) is generated.