After the double-wide load of hitters on the 2007 Hall of Fame ballot, we wrap up this year’s JAWS series with the pitchers. Though this year’s crop is relatively sparse, it’s not without a couple of candidates who deserve better than the treatment they’ve gotten thus far from the voters. The good news is that the tide may have finally turned.

We’ll dispense with the introductory formalities (you can read last year’s pieces here and here) and cut to the chase. As with the hitters, we’ll consider career WARP and peak WARP–the adjusted for all time flavor, WARP3–with the latter defined as a pitcher’s best seven years. Just as we eliminated the worst elected Hall of Famer at each position in determining the JAWS standards, we’ll exclude a similar percentage of pitchers–four out of the 60, in this case. In examining these pitchers, we’ll also use Pitching Runs Above Average (PRAA) because it forms a reasonable secondary measure for “peak” in conjunction with PRAR’s “career” proxy. A pitcher with many PRAA but fewer PRAR likely had a high peak and a short career, while one with the same number of PRAA but more PRAR likely had a longer career. Although durability should not be confused with excellence, league average has value, as anybody who’s ever suffered through a fifth starter’s pummeling knows.

This year’s pitching segment has one more wrinkle. On the advice of WARP creator Clay Davenport, the pitching portion of this year’s edition of JAWS includes a downward adjustment for pitchers in the AL after 1973 to counteract the negative hitting contributions of their non-DH brethren. This prevents the system from overly favoring recent AL pitchers, but the consequence is that the career and peak JAWS scores won’t match what you can pull from the DT pages on our site. I’d prefer the transparency, but in terms of evaluating the cases on the current ballot, the need for this “tax” wins out.


             W    L     IP    ERA    ERA+  AS CY  3C   HOFS   HOFM    BAL   2006%
Blyleven    287  250   4970   3.31   118   2   0   0   50.0   120.5     9    53.3
Hershiser   204  150   3130   3.48   112   3   1   1   34.0    90.5     1    11.2
John        288  231   4710   3.34   111   4   0   0   44.0   111.0    12    29.6
Morris      254  186   3824   3.90   105   5   0   3   39.0   122.5     7    41.2
Saberhagen  167  117   2563   3.34   126   3   2   0   32.0    70.5
Witt        142  157   2465   4.83    90   0   0   0   11.0     7.0

Last       PRAA   PRAR   WARP3   PEAK   JAWS
Blyleven    296   1492   131.0   63.0   97.0
Hershiser   126    850    85.5   55.4   70.5
John         96   1104   103.4   45.8   74.6
Morris        7    932    78.5   48.4   63.5
Saberhagen  251    866    85.6   57.8   71.7
Witt       -111    535    43.5   31.6   37.6
AVG HOF SP  244   1041    99.0   62.7   80.9

First to the ballot’s newcomers. Since I started doing this four ballots ago, one central tenet of the JAWS project is due process. Even when the numbers are enough to dismiss a candidate outright, every dog has his day, a few sentences to sum up his career and a moment to reckon with his legacy. But seriously, Bobby Witt? According to Hall of Fame rules, any player such as Witt who met the requirement of playing 10 major league seasons also had to be nominated by two members of a six-member Screening Committee of BBWAA writers. This isn’t an automatic; looking at the Hall web page’s list of players eligible for future elections, Witt got a nomination this year, where Jeff Brantley, Derek Bell, Darryl Hamilton, Pete Harnisch, Charlie Hayes, Glenallen Hill, Ken Hill, Stan Javier, Ramon Martinez (Pedro’s brother), Gregg Olson, Jeff Shaw, and Kevin Tapani did not. Considering only the pitchers for a moment, none of the slighted finished with a PRAA below zero, let alone more than 100 runs below average, and none finished with a peak score as low as Witt’s. This ballot should have been Wittless, yet it’s clearly more witless than that.

If we must… Witt was the kind of pitcher who drives managers to drink, a promising flamethrower–good enough to be picked third in the 1985 draft–whose wildness was legendary. Arriving in the majors after just 35 minor-league innings, Witt cast the die pretty quickly; in just his second major league start he tossed five hitless innings…while walking eight and striking out 10. He finished the 1986 season with 157.2 innings pitched, 175 strikeouts, and 143 walks. Same story the next year. He walked over 100 hitters for five straight years, but put things together in 1990, striking out 221 and walking “only” 110 in 222 innings, good for a 17-10, 3.36 ERA season worth 6.4 WARP. He never again pitched so well. Traded to Oakland in the Jose Canseco deal, he settled into a journeyman career, eating innings, walking hitters—he led the AL three times, and is 22nd all-time–and running up ERAs in the neighborhood of 5.00. In the words of George Stallings and my late grandfather, “Oh, those bases on balls!”

Bret Saberhagen was a more successful prodigy; he was a week shy of his 20th birthday when he debuted for the 1984 Royals. The timing couldn’t have been better for the franchise, which had missed the playoffs twice in a row after winning the division (or in the case of the ’81 strike, a share of it) in five of the previous six years. Along with Saberhagen, the Royals also came up with two other rookie hurlers, Danny Jackson and Mark Gubicza, and while none was instrumental in the team’s return to the top of the AL West that year, they all played a major role in helping the Royals to their first World Championship the following season. Saberhagen led the way, winning the AL Cy Young award on the strength of a 20-6, 2.87 ERA season (10.2 WARP) and the World Series MVP thanks to complete game victories in Games Three and Seven, the latter a shutout.

He struggled the following year (7-12, 4.15 ERA, 4.4 WARP), and would continue this bizarre pattern of strong odd-numbered years and lackluster even-numbered ones–including another Cy Young-winning, 11.7 WARP campaign in 1989–throughout his eight years in K.C.:

       W   L  ERA   WARP
Even  36  48  3.70  20.1
Odd   74  30  2.85  39.6

The Royals traded Saberhagen to the Mets after the 1991 season, but by that point he was already struggling with shoulder problems likely linked to averaging 260 innings a year from ages 23 to 25. Bouncing from New York to Colorado to Boston, he managed more than 24 starts just once in the next ten seasons, and he made just 15 between 1995 and 1997. When he wasn’t convalescing or rehabbing he was pretty good, particularly with Boston in 1998 and ’99 (a combined 11.8 WARP), but his ultimate claim to fame is a painful one: his 1,016 days on the disabled list are the most in baseball history, according to Gary Gillette in the ESPN Baseball Encyclopedia. That’s roughly five and a half seasons. Ouch.

Moving to the holdovers, Bert Blyleven is the best pitcher not in the Hall of Fame, according to JAWS. Spoiled by a group of contemporaries (Nolan Ryan, Tom Seaver, Steve Carlton, Gaylord Perry, Don Sutton, Phil Niekro) who won 300 games from the mid-’60s to the mid-’80s, when the days of the four-man rotation dominated, the Base Ball Writers Association of America hasn’t elected a non-300-winning starter since Fergie Jenkins in 1991. Blyleven not only outdoes Ryan, Sutton, and Jenkins according to JAWS, he ranks 16th among pitchers all-time:

Pitcher              WARP   PEAK    JAWS
Walter Johnson      200.9  104.6   152.8
Roger Clemens       192.9   83.5   138.2
Cy Young            178.2   83.3   130.8
Greg Maddux         165.6   81.9   123.8
Pete Alexander      153.6   88.3   121.0
Warren Spahn        156.0   74.8   115.4
Tom Seaver          147.8   73.7   110.8
Lefty Grove         137.8   80.8   109.3
Randy Johnson       136.6   78.1   107.4
Christy Mathewson   131.2   82.7   107.0
Phil Niekro         138.6   69.2   103.9
Steve Carlton       131.5   70.1   100.8
Gaylord Perry       132.5   68.9   100.7
Robin Roberts       127.2   73.4   100.3
Bob Gibson          120.1   76.7    98.4
Bert Blyleven       131.0   63.0    97.0

Blyleven was a power pitcher with a devastating curveball (or two) who spent the first part of his career toiling for a mostly mediocre Minnesota club, racking up innings and decisions galore. Despite the middling records, he was dominant, posting ERAs 25 to 50 percent better than league average and striking out about 230 guys a year. His top WARP came in 1973 (12.3) when he threw a whopping 325 innings of 2.52 ERA ball, striking out 258; for his trouble, he went 20-17. Contract issues hastened his exit from the Twin Cities; he was traded to Texas in 1976, and a year and a half later, arrived in Pittsburgh.

For the Pirates he remained a front-line starter, albeit with a considerably smaller workload; manager Chuck Tanner loved his deep bullpen, and Blyleven didn’t. Nonetheless, he sparkled in the 1979 postseason, helping the Pirates win the title. Following the 1980 season, he was traded to Cleveland, and after a good 1981, an elbow injury cost him nearly all of 1982. Upon coming back, he returned to his usual workhorse self, and was traded back to the Twins in mid-1985, where it was like he never left: 17-16, 17-14, high strikeout totals, good ERAs and homers galore (a record 50 in 1986). In 1987 he helped the 85-win Twins to an unlikely World Championship, shining in the playoffs. He left for California after 1988 and had one of his best seasons (17-5, 2.73 ERA), then sandwiched two mediocre years around one completely missed with rotator cuff surgery.

Hall of Fame voters perform all kinds of gymnastics in attempting to justify why Blyleven doesn’t get their vote, most fixating on his relatively unimpressive winning percentage (.534), his 250 losses, a win total on the wrong side of 300, and his failure to garner a Cy Young Award. But his career totals place him in elite company: fifth all-time in strikeouts (only Ryan, Carlton, Clemens, and Randy Johnson are ahead), ninth in shutouts, tenth in games started, 13th in innings, and 26th in wins, with virtually everybody around him on those lists either in the Hall of Fame or headed there. The Davenport numbers tell a similar story. Only 14 Hall of Famers have higher PRAA than Blyleven, only eight have higher PRAR, just 10 have higher WARP totals. It’s worth noting he compares favorably to his enshrined contemporaries. Ranked by JAWS:

Last     PRAA   PRAR   WARP3   PEAK   JAWS
Seaver    431   1544   147.8   73.7   110.8
Niekro    304   1502   138.6   69.2   103.9
Carlton   226   1444   131.5   70.1   100.8
Perry     286   1504   132.5   68.9   100.7
Blyleven  296   1492   131.0   63.0    97.0
Ryan      205   1624   129.3   60.5    94.9
Jenkins   267   1337   120.9   66.5    93.7
Palmer    196   1087    98.3   62.7    80.5
Sutton    142   1348   111.9   46.7    79.3
Hunter     -3    795    69.8   51.8    60.8

One of these pitchers is not like the others, but it isn’t Blyleven, it’s Catfish Hunter, a pitcher who supposedly “pitched to the score” and thus had some high ERAs, not to mention a relatively short career. Blyleven is third among this group in PRAA and fifth in WARP, sixth in peak and fifth in JAWS (yes, the adjustments knock him down a couple of pegs in each spot). As noted before, he’s ahead of 300-game winners Ryan and Sutton on both career and peak measures. Quite frankly, there isn’t a single eligible pitcher outside of the Hall of Fame who deserves to be in there more.

Fortunately, the electorate appears to be coming around. The first time I tackled the Hall of Fame ballot for BP, Blyleven wound up pulling 35.4 percent of the vote in his seventh year on the ballot. Thanks to an Internet blitz that’s centered around Rich Lederer’s substantial campaign at The Baseball Analysts, actual BBWAA voters appear to have been won over by the weight of evidence in Blyleven’s favor. Last year, Blyleven crossed the 50 percent threshold for the first time, attaining 53.3 percent of the vote. This year, he’s got at least one more writer in his corner; no less than 2005 J.G. Taylor Spink Award recipient Tracy Ringolsby conceded he’d been won over. Blyleven’s still got a ways to go, but his eventual enshrinement is no longer out of the question.

Not so for fellow holdover Tommy John. A decent finesse pitcher for nine years with the Indians and White Sox, John’s modest success in his first three seasons as a Dodger lifted his career record to 124-106 before an elbow injury ended his career prematurely in 1974… Cut… At the hands of Dr. Frank Jobe, John underwent an unprecedented reconstructive surgery and then a similarly unprecedented rehabilitation. Against long odds, he returned to the Dodger rotation in 1976 and the following year began a stretch which saw him win 80 games over four seasons split between the Dodgers and the Yankees and appear in three World Series over five (alas, never on the winning side). Within that streak he was a three-time All Star and the Cy Young runner-up in both leagues, and after that he still had eight seasons left as a league-average pitcher. In total, John pitched 14 seasons AFTER the surgery, retiring at age 46–long enough to put him in some very select company. With 288 wins (25th all time) and 4710 innings (19th), virtually everybody above him is either in the Hall or headed there. Had he not missed that year and a half, he might have achieved the magic 300 wins to guarantee enshrinement.

In previous years, the Davenport system had John coming out with a JAWS score above the Hall average. With the DH-era adjustments, that’s no longer the case. He’s well above the career WARP standard of the average Hall pitcher, but his peak is 17 WARP below–more than 2.4 per year. The Davenport system gives a fair chunk of the credit to the fielders behind John, who struck very few hitters out, and as a result John topped 7.0 WARP just twice in 26 years. Even with the previous positives, I was ambivalent about his candidacy, noting his low PRAA total, about four per year. I’m comfortable giving him a modest bonus for being a surgical pioneer, but he’s now too far off the pace to slide through on that basis.

Jack Morris continues to poll better than John, but the merits of his candidacy just as surely continue to erode with the new adjustments; he’s lost about seven JAWS points relative to last year. Like fellow candidate Alan Trammell, Morris was part of the home-grown nucleus that anchored the Tigers‘ fine 1984 title team, and the gritty ace on World Champions for two other clubs. He racked up some high win totals over the course of his 18 seasons, and put up some stellar performances in the postseason (7-4, 3.80 ERA), most notably an unforgettable 10-inning 1-0 shutout in Game Seven of the ’91 Series. Black Jack acquired a larger-than-life reputation based primarily on that performance, and for a while it seemed like it might carry him to the Hall of Fame. But his career ERA and ERA+–and subsequently his WARP-based totals–are nothing to write home about, and neither is a PRAA total that’s in the single digits.

Supporters have dismissed Morris’ high ERAs, claiming that he “pitched to the score.” Research by Greg Spira and Joe Sheehan put the lie to this claim. Poring over Morris’ career inning by inning via Retrosheet, Sheehan concluded: “I can find no pattern in when Jack Morris allowed runs. If he pitched to the score–and I don’t doubt that he changed his approach–the practice didn’t show up in his performance record.” Morris’ record is more a product of good run support than it is special strategy. For all of his extra wins and postseason success, he’s too far gone to merit a vote.

“Pitching wins championships,” it’s often said, but few pitchers ever brought that tired old saw to life the way Orel Hershiser did in 1988. In his fifth full season in the majors, he went 23-8 with a 2.26 ERA for the Dodgers, good enough for the Cy Young award. But it was his late-season exploits for which he’ll always be remembered. He closed the season with a string of 59 consecutive shutout innings–breaking Don Drysdale‘s 20-year old record–then shut down the Mets for eight innings in Game One of the LCS before they got to him and took the win. They got to him again in Game Three, but Hershiser exacted revenge by coming out of the bullpen in the 12th inning the next night to cover for closer Jay Howell, who had been suspended for having pine tar on his glove. He nailed the win down, clinched the series with a Game Seven shutout, and beat the mighty Oakland A’s–Canseco, McGwire, Stewart, LaRussa–twice in the World Series despite a lineup that claimed Mickey Hatcher, Mike Davis, and Franklin Stubbs as vital cogs, helping the Dodgers to one of the all-time World Series upsets.

Those high-pressure innings–309 that year, by the time it was all said and done–took their toll. By 1990, he’d undergone rotator cuff surgery, and toiled for the next decade as a slightly-better-than-league-average inning-eater for good teams in Cleveland, San Francisco, and New York, living up to his “Bulldog” nickname by scuff(l)ing his way to 106 wins post-surgery. He remained a tough customer in the postseason, helping the Indians to the 1995 and 1997 World Series, and all told, threw 132 postseason innings at a 2.59 ERA clip. That highlight film, however, isn’t enough to cover for the fact that he falls short of the JAWS standards, though he does outpace 26 of the 60 pitchers who have been elected, including Catfish Hunter and Sandy Koufax. He won’t get in, but he’ll always have a place in the hearts of Dodger fans, this one included. Flags fly forever.


Last         W    L    SV     IP   ERA    ERA+  AS CY  3C   HOFS   HOFM    BAL   2006%
Gossage     124  107  310   1809   3.01   126   9   0   0   19.0   126.0    7     64.6
Smith        71   92  478   1289   3.03   132   7   0   0   13.0   136.0    4     45.0

Gossage     240    837    87.9   55.2   71.6   54.0   98.5
Smith       239    756    82.3   46.5   64.4   47.4   88.1
AVG HOF RP  224    869    88.9   49.6   69.2   38.0   88.2

When I cobbled together the system that became JAWS, just two relievers were in the Hall of Fame, Hoyt Wilhelm and Rollie Fingers. Over the past three years, that number has doubled, with the elections of Dennis Eckersley and Bruce Sutter. Though there’s plenty to quibble about with regards to the latter’s election last year, it’s a bit easier to sketch out a standard for relievers, particularly with our own Keith Woolner’s development of the Reliever Expected Wins Added (WXRL) stat. WXRL accounts for the discovery that a reliever at the end of a ballgame has a quantitatively greater impact on winning and losing (a ratio called leverage) than a starter does. It measures that impact by comparing a team’s chances of winning based on the game state (bases, outs, score differential) before he enters and after he leaves, and functions as something of a career/peak hybrid; one can accumulate a high total via performing well under high-pressure situations for shorter periods or in more moderate pressure situations for longer. Last year, I put aside an earlier kludge and began incorporating WXRL totals into a Reliever’s Adjusted JAWS score via the formula RAJAWS = (0.5 x WXRL + JAWS).

Woolner graciously pulled together a list of all pitchers with at least 25.0 career WXRL, so with that, here’s a RAJAWS ranking. It’s somewhat incomplete, as WXRL calculations in the BP database currently only go back to 1960, so it’s missing the first eight years of Wilhelm’s career, five years of Lindy McDaniel, and eight of Stu Miller, to say nothing of their forebears. Nonetheless, we can get a pretty solid idea of where the two candidates rank with regards to the enshrined and the two active pitchers who are likely bets to reach the Hall soon after retirement, Mariano Rivera and Trevor Hoffman. Here’s the provisional version of the RAJAWS Top 25:

Eckersley   120.7   54.2   87.5   35.0   105.0   HOF
Rivera       84.8   60.0   72.4   59.1   101.9
Gossage      87.9   55.2   71.6   54.0    98.5
Hoffman      77.1   49.3   63.2   59.7    93.0
Wilhelm      96.7   47.9   72.3   33.1    88.9*  HOF
LSmith       82.3   46.5   64.4   47.4    88.1
Fingers      80.0   49.7   64.9   46.1    87.9   HOF
Franco       80.0   40.3   60.2   45.1    82.8
Gordon       80.6   44.6   62.6   32.4    78.8
Wagner       61.2   48.8   55.0   41.4    75.7
DJones       66.1   48.2   57.2   33.1    73.8
RHernandez   67.8   46.8   57.3   29.3    71.9
Sutter       58.0   46.6   52.3   37.6    71.1   HOF
LMcDaniel    70.0   43.3   56.7   27.0    70.2*
Wetteland    58.1   46.0   52.1   35.4    69.8
Henke        59.6   42.4   51.0   36.9    69.4
McGraw       57.8   37.1   47.5   39.9    67.4
Myers        55.7   40.0   47.9   39.0    67.4
Quisenberry  52.9   46.5   49.7   34.0    66.7
SMiller      61.6   42.8   52.2   28.9    66.6*

* incomplete–pre-1960. (This BP Unfiltered post has a more complete version.)

Rich Gossage, “The Goose,” was a standard-setting reliever for a decade, a useful major league pitcher for another decade, and ten years later remains a yardstick for dominance. From 1975-1985, minus a year-long failed experiment as a starter, Gossage blew hitters away in both leagues, helped his teams to three pennants, made nine All-Star squads and kept his ERA well under 3.00 every single year. He came up with the White Sox, emerging as a force in 1975 when he threw 141.2 innings with a 1.84 ERA, had 130 strikeouts, led the league with 26 saves and had 7.632 WXRL (20th best of all time). After a mediocre season in the rotation, the Sox traded him to Pittsburgh, where he returned to relief dominance with a 1.62 ERA and 8.113 WXRL (10th best). That performance prompted Yankee owner George Steinbrenner to throw big bucks at him–six years, $2.75 million–despite the fact Steinbrenner already employed the reigning Cy Young winner, Sparky Lyle. With his 100-mph heat and big-money imprimatur, Gossage usurped Lyle’s role as the Yankee stopper. He was brilliant in his six pinstriped seasons, posting a 2.10 ERA (a 183 ERA+), saving 25 games per year, striking out about a batter per inning, averaging 86 innings annually despite a Bronx Zoo-brawl injury in ’79 and the strike in ’81, and leading the league in WXRL twice (for a total of four).

Gossage left for San Diego via free agency after 1983, and the move paid dividends with an ’84 World Series berth. He was the go-to man in the Padre pen until ’87, but upon a trade to the Cubs after that season, began the familiar trudge of the past-prime reliever, not quite settling in a setup role, making five more stops (including a cameo with the Yanks) and spending 1990 in Japan. He topped 50 innings only once in that stretch, mostly due to injuries, but he held his own when he did pitch.

Gossage’s case as a Hall of Famer is a reasonable one on the traditional merits: that decade of dominance resonating in the public mind thanks in part to a lot of postseason exposure (19 games, 31.1 innings, 2.87 ERA). Based on the number of innings thrown and his better-than-average ERA, a solid case can be made for him as the second-best reliever ever behind Wilhelm. His Davenport numbers are just as strong. Gossage’s two best years are above 10 WARP; by peak, career, and JAWS numbers he’s better than many starters in the Hall, and his PRAA is right around the Hall average. Furthermore, he blows Fingers and Sutter away on the RAJAWS scale. He’s got the best case of any retired reliever outside the Hall and fully deserves a plaque in Cooperstown. He surged forward in the BBWAA voting last year, gaining 9.4 percent, and with Sutter out of the way, has a good shot at getting over the hump, if not this year–when the voters will likely let automatics Cal Ripken and Tony Gwynn keep the spotlight to themselves–then in 2008.

The physically intimidating Lee Smith stepped into the large shoes vacated by Sutter in Chicago and did a credible job in six years as their 100-inning-per-year closer. From 1983-1987, he finished in the top five in saves every season, leading the league once. He was in the top 5 in WXRL three times in that span, and never lower than 11th. Traded to Boston after 1987, he continued to post high-quality seasons, though his workload and save totals dipped a bit. Traded again to the Cardinals, he flourished, topping Sutter’s NL save record and recording 160 saves in parts of four seasons–taking over the all-time lead in that category–before packing his bags again. He finally led the league in WXRL in 1991, with 5.121. Through five more stops, the innings began to take a toll on his body, and his managers limited his usage to about 50 frames a year, one inning at a time, to keep him effective. He spent his last two seasons in a setup role, with diminishing returns, finally hanging it up in 1998.

From a traditional standpoint, Smith’s case starts with his status as #2 on the all-time saves list (Hoffman topped him last August), his seven All-Star selections, and an amazing string of consistency which followed him to virtually every stop on his 18-year ride. Until his abbreviated final season, his ERA+ was always better than league-average–32 percent better for his career. On the down side, his teams never went further than an LCS, and he got bombed in his brief postseason appearances, blowing two ballgames in best-of-fives. His PRAA is right around the Hall average without any adjustment for his low inning totals, an impressive feat. His RAJAWS tops two of the four relievers in the Hall, and he’s pretty much right on the line with the small-sample size average (which again, is missing Wilhelm’s initial years). Though the line for relievers is still fuzzy, his ranking suggests he’s deserving enough.

So after analyzing the entire ballot, we come away with votes for Albert Belle, Gwynn, Mark McGwire, Ripken, Trammell, Blyleven, Gossage, and Smith. That’s a pretty full ballot, though the voters are unlikely to see it that way. As Murray Chass of the New York Times notes, “Of the 20 players elected in the past 14 years, only two repeat candidates made it in years when first-timers on the ballot were elected.” That likely means “Wait ‘Til Next Year” for Blyleven, Gossage and the other two players (Andre Dawson and Jim Rice) who’ve crossed the 50 percent threshold which virtually guarantees eventual election. By the time you read this, we may already know who’s gotten the requisite 75 percent of the vote necessary for enshrinement; stop by my chat on Tuesday at 4 PM EST to chew on the results.

Thanks to Clay Davenport, Pete Quadrino and Keith Woolner for research help with this year’s JAWS series

Thank you for reading

This is a free article. If you enjoyed it, consider subscribing to Baseball Prospectus. Subscriptions support ongoing public baseball research and analysis in an increasingly proprietary environment.

Subscribe now
You need to be logged in to comment. Login or Subscribe