On Sunday, the Arizona Diamondbacks pulled off what might be the surprise signing of the winter, inking former San Francisco Giants left-hander Madison Bumgarner to a five-year deal worth $85 million. The Bumgarner agreement comes less than five months after Mike Hazen traded a different veteran pitcher, Zack Greinke, to the Houston Astros for four prospects.

There's a tendency to label teams as buyers or sellers. The Diamondbacks have proved that to be a false dichotomy over the past year-plus. (This is, after all, the same group who, in addition to moving Greinke, also added at the deadline in the form of Mike Leake and Zac Gallen.) As tempting as it would be to call the Diamondbacks buyers, that's probably an oversimplification.

Sure, the Diamondbacks would still seem to possess some financial flexibility. As it stands, they're projected to enter next season with a payroll of $114 million -- or, about $9 million below last year's mark, and $17 million south of their 2018 figure, per Cot's Contracts. If they wanted, they could probably use that money to add an outfielder and call it a winter. But Hazen is in an interesting position, and it stands to reason that he might mimic what he's done over the past 12-plus months: attempting to field a competitive team while keeping an eye on the future.

Think back to last winter, when the Diamondbacks lost Patrick Corbin and A.J. Pollock to free agency and opted to trade Paul Goldschmidt before his walk year. The names aren't quite as famous this go around, but Hazen does have a number of impending free agents to worry about, including left-handed starter Robbie Ray, outfielder David Peralta, shortstop Nick Ahmed, corner infielder Jake Lamb, and left-handed reliever Andrew Chafin. Factor in how Yasmany Tomas' contract expires at year's end, and how Mike Leake's option seems unlikely to be exercised, and the D-Backs could lose seven of their 10 highest-compensated players. 

As such, Hazen signed Bumgarner knowing his ledger is mostly clear after this season. But there's a difference in adding an above-average starter for less than expected as a one-off move and building a team that can remain in contention for years to come. That's where things get tricky for the Diamondbacks, as there are essentially three routes Hazen can take: 1) keep the roster as it is, add an outfielder, and pivot at the deadline if needed; 2) go all-in on the future, trade every expiring contract, and try to backfill the holes with one-year free-agent deals; or, 3) split the uprights by doing a little buying and selling. 

If we had to guess -- and it's just a guess -- the third option is the likeliest. Keeping the band together for one more run sounds good in theory, but doesn't match up with how executives run their teams anymore -- they're obsessed with getting something in return unless they already have an elite team in place (and even then). Likewise, punting on 2020 would be a waste -- and besides, the D-Backs should be wary of adding too much low-minors talent after a bloated draft class; teams can house only so many prospects on their 40-man roster, and Rule 5 considerations and the like are a big part of the organization-building process.

The third route is the toughest to pull off, but would see the Diamondbacks do something like trade Ray for outfield help. The Minnesota Twins, for example, would seem well-positioned to match up as partners: they have the rotation need and the ability to spare an outfielder (be it a veteran or a near-ready prospect) for the right to add Ray to their starting five. The Diamondbacks, then, would be leveraging their rotation depth to improve elsewhere.

Again, it's a tight needle to thread -- one that requires some luck, too, as not every team interested in Ray would be able to fill a need -- and you can argue it's not necessarily the best route forward. It does appear to be the likeliest for Hazen and crew, however.