Draft Regrade

Brock Purdy goes first in a redraft of 2022. That weekend his class was a C+

Every 49ers draft pick since 2021 now carries two grades on one page: the process, graded on what was knowable the Monday after the draft, and the result, recomputed at the end of every season. The 2022 class graded C+ on its weekend and has ranked in the top three of 32 at the end of two seasons since. The 2025 class sits last of 32 after one.

SK
Sam KezarSep 22, 20268 min read
Every call on this site goes on a public ledger and gets graded. The misses stay up.
John Lynch, the 49ers general manager, laughing in a red San Francisco rain jacket with the team's shield on the chest, on a wet field in Washington in October 2019. Lynch has run every draft graded on the page, and this photograph is from a game day, not a draft.

San Francisco has made 53 draft picks since 2021, and every one of them is now graded on one page, Draft Regrade: all of them for the process, and all but the eight from April for the result as well. The first grade is for the process: the right pick, at the right price, on what was known that weekend. The second is for the result, recomputed at the end of every season on a rookie deal, as a letter from A+ to F built from playing time, what his position is paid, the slot he was taken at and any public honors he won. Each class gets both grades and a rank among the 32 classes of its year. A method note on the page says how the letters are made.

The process grades below were written on September 22, 2026, from sources dated no later than the Monday after each draft; they say what was knowable that weekend and nothing after.

A process grade written today about the 2022 draft is not allowed to know that the 262nd pick became the starting quarterback, and this one does not. The result letters are where Purdy shows up, and he shows up everywhere.

ClassProcess, that weekendResult, latest season's endRank of 32
2026Bnone until January
2025C-F32nd
2024B-B-10th
2023CC18th
2022C+B-10th
2021B-C-20th

The result letters are computed from PFF's season grades, which are subscriber data and are not shown on the page or here, with snap counts, what the top ten contracts at his position pay, the pick's slot and any MVP, player of the year, rookie of the year, All-Pro or Pro Bowl honor. A reader sees the letter, the rank and the redraft slot, where each pick would go if his class were re-picked today.

2026: B on the weekend, nothing yet on the result#

The club came into Pittsburgh with six picks and a board that had run out of first-round grades before No. 27, per Lynch on the Thursday night. It moved 27 and 138 to Miami for 30 and 90, then 30 to the Jets for 33 and 179, and the players it wanted at 30 were still there at 33, per Shanahan. Three more trades, one of them Dee Winters to Dallas for 152, turned six picks into eight plus a 2027 sixth.

The trades were the process: moving down twice at the exact point the board went thin, turning a fourth-rounder into a third and adding a fifth, and Reuter at NFL.com called it wise on the Saturday night. The use of the picks was contested. De'Zhaun Stribling at 33 went ahead of Denzel Boston, the receiver the weekend's grades kept naming ahead of him, and Prisco named Kaelon Black at 90 the worst pick of the class on the Monday. Romello Height at 70 and Gracen Halton at 107 drew the recurring praise. B: good process on the trades, stated in advance and explained after, and two contested selections. The result column stays empty until the season ends in January.

2025: C- on the weekend, and last of 32 after one season#

The need was the defensive line, after a March that took Aaron Banks, Charvarius Ward, Dre Greenlaw and Talanoa Hufanga out of the building and a 6-11 season that allowed the second-most rushing touchdowns. The club tried to move up from 11 for Mykel Williams, was turned down, and made all 11 picks it held. Five defenders first, the first time since 1981.

The direction was praised that weekend and the prices were not. Williams and Alfred Collins drew the same question, pass-rush production, and both sat about a round lower on PFF's public board. Nick Martin at 75 and Upton Stout at 100 were called reaches. The Chronicle's Day 2 need list had tackle and guard on it, and the first offensive lineman came at 249. C-: the right direction, taken at the wrong prices, with the line left for the seventh round.

The first season's-end read is harder. The class grades F and ranks 32nd of 32. Williams is F against an A par, 1,244th of 1,278 first-season picks, in nine games. Martin is F against a B- par in two games. Collins is D- against a B+ par, 1,134th of 1,278. Three picks sit above their slot: Stout, B+ against a B- par, 139th of 1,278, who holds the best redraft slot in the class at 42nd of 254, and two seventh-rounders, Connor Colby and Junior Bergen.

2024: B- on the weekend, 7th of 32 and then 10th#

The needs were receiver depth, cornerback with Ward and Deommodore Lenoir in their last contract years, and offensive tackle, which Wagoner called arguably the greater need. Ricky Pearsall at 31 was a consensus pick inside the building and the most questioned one outside it: Prisco named it the worst pick of the class and read it as a receiver drafted ahead of a trade, and Cohn argued a tackle was there for the taking. Day 2 went the other way: one spot down, 63 to 64, with Renardo Green still on the board and 211 turned into 173 for the trouble, then 94 and 132 to Philadelphia for Dominick Puni at 86. Green and Puni were the praised picks. No tackle came in eight picks. B-: a defensible first-rounder at the wrong need and a good Day 2.

The result letters read the Day 2 half the same way. Puni graded A as a rookie, 46th of 1,278 first-season picks, and B+ in 2025, and in a redraft today he goes 22nd of 253. Green graded A- as a rookie, 97th of 1,278, and C in 2025, and goes 37th. Pearsall, C as a rookie against a B+ par, went to B in 2025 and goes 31st. The class was 7th of 32 after 2024 and is 10th after 2025.

2023: C on the weekend, and a kicker's three letters#

Nineteen of 22 starters were back, the club's stated need was a kicker with Robbie Gould gone, and the club's own first, second, third and fourth had gone to Miami and Carolina in the Lance and McCaffrey trades. Moving from 102 to 87 for Ji'Ayir Brown, at the cost of 164 and 222, bought a player Kiper and others had graded in the second round.

Jake Moody at 99 is the grade. The need was real, and the club argued that with no fourth-rounder he would not last to the fifth round. The weekend's precedent for a kicker taken that high was Roberto Aguayo at 59 in 2016, and PFF called the third round rich for any kicker. Cameron Latu at 101 was called a reach, and no offensive lineman was drafted with Mike McGlinchey gone. C: one good trade, one third-round pick spent where the market said to wait.

Moody's result letters are the class in miniature: C- as a rookie against a B- par, 624th of 1,278, then D- in 2024, 856th of 1,024, then D in 2025, in Washington, and he goes 136th of 255 in a redraft. Brown went B-, C+, C, at par only as a rookie, and holds the class's best redraft slot at 66th of 255. Latu did not play in his first two seasons. The class was 19th of 32 after 2023, 24th after 2024 and 18th after 2025.

2022: C+ on the weekend, and the reason the page exists#

No first-round pick, owed to Miami, and a playoff roster with three holes named that week: a rusher opposite Nick Bosa, protection for Trey Lance, and receiver speed, all of it under Deebo Samuel's trade request. The club stayed put through nine picks and, per Lynch and Shanahan on the Friday night, turned down every Samuel offer. Drake Jackson at 61 met the biggest need at a price PFF called phenomenal value. Danny Gray at 105 brought the speed. Tyrion Davis-Price at 93 is what the weekend refused: a third-round running back on a roster that had drafted two the year before, Prisco's worst pick and Kiper's huge overreach. The 262nd pick was a quarterback from Iowa State whom Wagoner read as a camp arm. The Tennessean gave the pick a C, and Reuter faulted the club for eschewing other needs with it. C+: two sound need picks and a reach at 93 on a roster with holes.

Purdy has graded A+ in every season the page can grade: 8th of 1,278 first-season picks in 2022, first of 1,024 in 2023, then 2nd of 771 in 2024 and 2nd of 516 in 2025. In a redraft of the 2022 class today he goes first of 261. The class ranked 4th of 32 after 2022, 2nd after 2023, 3rd after 2024 and 10th after 2025, the season Purdy played 11 games. Take him out and what is left is Samuel Womack at A- for Indianapolis in 2024, Jackson at F for Washington last year, Davis-Price, the reach at 93, at D- in every season and unplayed in 2025, and Gray, who did not play after his rookie season.

2021: B- on the weekend, and Lance F in five seasons#

No. 3 was already in hand from the March 26 trade with Miami, and that trade is context, not weekend. The weekend's decisions were Lance over Mac Jones, a bet on ceiling with Garoppolo as the safety net, and a Day 2 that traded back from 43 to 48 for Aaron Banks, then spent 117 and 121 to move up to 88 for Trey Sermon. Wagoner called Banks the top-rated guard in the class and doubted his outside-zone fit in the same pick note, and Reuter wrote that two fourths for a running back would be scrutinized. Day 3 landed well: Hufanga, the Pac-12 defensive player of the year, at 180, was Branch's best first impression of the class. B-: a coherent plan at the top, two value questions in the middle.

The result letters say the plan at the top failed and the Day 3 picks carried the class. Lance is F in all five seasons the page grades, against the third pick's par of A+ as a rookie and A in every season after, and in 2025, his fifth season, with the Chargers, he ranks 254th of 255. In a redraft today he goes 130th of 255. Lenoir, the 172nd pick, graded A in 2023, 23rd of 771, and A- in 2024, and goes 30th in that redraft. Hufanga, A in 2022, his first-team All-Pro season, goes 54th. Banks, the trade-back pick at 48, went F, C, D, C against a B par and goes 78th. Sermon, the two-fourths pick, never graded above D and goes 155th. The class has never ranked better than 17th of 32 and sits 20th after 2024.

What changes and what does not#

The six process grades above are frozen; a correction adds a dated revision on the page with the reason, and the letter itself never moves. The result letters move every January, through the fourth season for every pick and a fifth for a first-rounder whose option is exercised. The 2026 class gets its first result letter after this season and the 2023 class its fourth. From next April the process grade is written on the weekend.

Update, 2026-09-23

On September 23, after publication, Draft Regrade changed its method from 3.0, the version the sources below name, to 3.1. An All-Pro or Pro Bowl honor won as a returner, special teamer, kicker, punter or long snapper now counts at special-teams pay and for half as much, instead of at the pay of the player's position. No pick letter and no class letter above moved. Four figures shifted by one or two places: Aaron Banks's redraft slot from 78th to 77th of 255, Renardo Green's 2024 rank from 97th to 96th of 1,278, Dominick Puni's 2024 rank from 46th to 45th, and Upton Stout's 2025 rank from 139th to 137th. The text above stands as published, and the page is the current record.

CP

Update, 2026-09-26

On September 26, Draft Regrade matched 34 picks around the league to their graded seasons for the first time. Their names had not lined up with the graded record, so their seasons had counted for nothing. The method is unchanged at 3.1. The field every pick is measured against grew by those seasons, and some letters moved with it. Two rules ship with the fix. A pick with no graded season on file still shows no letter and no rank, and now counts at zero in his class's total instead of holding the whole class back. And the class ranks on the league page, at /draft-regrade/, now print for every year.

The 49ers letters that moved, before and after. Four pick letters: Talanoa Hufanga's 2021 season from B- to C+; Ambry Thomas's 2023 season from B- to C+; Brayden Willis's 2025 season from C to C-; Malik Mustapha's 2025 season from B- to C+. Eight bars, the bar being what a pick at that slot usually returns: Deommodore Lenoir's 2023 and 2024 bars from C+ to C; Hufanga's 2024 bar from C+ to C; Drake Jackson's 2025 bar from B to B-; Samuel Womack's 2024 and 2025 bars from C+ to C; Robert Beal's 2025 bar from C+ to C; CJ West's 2025 bar from B- to C+.

The class results that moved, each with its rank of 32. The 2021 class after the 2021 season from D+ and 25th to D and 27th; after 2022 from C and 17th to C- and 21st; after 2023 from C and 19th to C- and 22nd; after 2024 from C- and 20th to D+ and 23rd. The 2022 class after 2023 from A and 2nd to A- and 4th, and after 2024 from A and 3rd to A- and 4th. The 2023 class after 2024 stays D+ and moves from 24th to 25th. The 2024 class after 2024 stays B and moves from 7th to 8th. The 2025 class after 2025 stays F and moves from 32nd to 31st, so it is no longer last. Most redraft slots also shifted by a few places, because each class's field grew by one to four picks as the matched picks entered it; Brock Purdy still goes first. No process grade moved; those are frozen. The text above stands as published, and the page is the current record.

CP

Update, 2026-09-29

On September 29, Draft Regrade changed its method to 3.3, and most of the pick letters above moved with it. The reason, in one sentence: a pick is now graded against the players taken near his slot in the draft, and a normal year for that slot is a B-, not a C. So the rank beside each letter is now his place among the 25 or so picks drafted nearest him instead of among every pick in the league, and the "par" letters above are gone; the page now shows the typical season for the slot as a number of points. No class letter, class rank or redraft slot moved, and no process grade moved; those are frozen. Brock Purdy is A+ in all four seasons before and after, and now ranks first of 29 in 2022, first of 25 in 2023, first of 27 in 2024 and first of 25 in 2025.

The 49ers letters above that moved, before and after, each with its new rank. The 2025 class: Mykel Williams from F to D, 22nd of 25; Nick Martin from F to D-, 24th of 25; Alfred Collins from D- to C, 19th of 25; Upton Stout from B+ to A+, first of 25. Of the two seventh-rounders named above, Connor Colby goes from B- to A-, 4th of 34, and Junior Bergen from C to D+, 17th of 25, so he no longer sits above a typical season for his slot. The 2024 class: Dominick Puni from A to A+, first of 25, in 2024 and from B+ to A-, 4th of 28, in 2025; Renardo Green from A- to A+, first of 25, in 2024 and from C to B+, 8th of 28, in 2025; Ricky Pearsall from C to B, 11th of 25, in 2024 and from B to B+, 6th of 28, in 2025; Malik Mustapha's 2025 season, named in the September 26 note, from C+ to A-, 5th of 28. The 2023 class: Jake Moody from C- to C+, 16th of 25, in 2023, from D- to C+, 18th of 28, in 2024 and from D to C+, 18th of 27, in 2025; Ji'Ayir Brown from B- to B, 8th of 25, from C+ to B, 11th of 28, and from C to B-, 12th of 27; Ambry Thomas's 2023 season from C+ to B, 10th of 27, and Brayden Willis's 2025 season from C- to B-, 13th of 27, both named in the September 26 note. The 2022 class: Samuel Womack's 2024 season from A- to A, 3rd of 27; Drake Jackson's 2025 season from F to C, 19th of 26; Tyrion Davis-Price, D- in every season above, is now C, 18th of 25, in 2022, D+, 24th of 28, in 2023, D, 24th of 27, in 2024 and D, 20th of 26, in 2025. The 2021 class: Trey Lance, F in all five seasons above, is now D-, 24th of 25, in 2021, F, 28th of 28, in 2022, F, 27th of 27, in 2023, D-, 24th of 26, in 2024 and C+, 17th of 25, in 2025; Deommodore Lenoir from A to A+, first of 27, in 2023 and from A- to A, 2nd of 26, in 2024; Talanoa Hufanga's 2022 season stays A, 2nd of 28, and his 2021 season, named in the September 26 note, goes from C+ to B+, 6th of 25; Aaron Banks from F, C, D, C to D-, B+, B-, B, 24th of 25, 8th of 28, 14th of 27 and 10th of 26; Trey Sermon, never above D in the text above, is now B-, 15th of 25, in 2021, D-, 26th of 28, in 2022, C-, 22nd of 27, in 2023 and B-, 16th of 26, in 2024. The text above stands as published, and the page is the current record.

CP

Sources: the Draft Regrade ledger and page at /49ers/draft-regrade/ (result letters, ranks, redraft slots, games; letters computed by the site's method 3.0 from PFF season grades, snaps, position pay from the top ten contracts at each position per Over the Cap, draft slot, and public honors (the MVP, player of the year and rookie of the year awards per ESPN; AP All-Pro teams and Pro Bowl rosters); no PFF value is printed); for the process grades, sources dated no later than the Monday after each draft: NBC Sports Bay Area (Matt Maiocco, April 29, 2021; Marcus White, April 30, 2021; Maiocco, April 29, 2022; Maiocco, April 28 and 29, 2023; Angelina Martin, May 1, 2023; Maiocco, April 24, 2025; staff, April 23, 2026); ESPN (Nick Wagoner, April 30 and May 1, 2021; April 30, 2022; April 27, 2024); NFL.com (Chad Reuter, May 2, 2021; April 29, 2023; April 27, 2024; April 25, 2026); PFF draft grades (May 1, 2021; April 30, 2022; April 29, 2023; April 26, 2025); CBS Sports (Pete Prisco, May 2, 2022; April 28, 2024; April 27, 2026; Chris Trapasso, April 28, 2025); SF Chronicle (Eric Branch, May 3, 2021; April 28, 2023; Branch and Noah Furtado, April 25, 2025; Branch, April 27, 2025; Furtado, April 24, 2026); Sports Illustrated (Grant Cohn, April 28, 2024; April 27, 2025); 49ers Webzone (Day 2 transcripts, April 29, 2022 and April 26, 2024; David Bonilla, April 23, 2026; experts roundup, April 27, 2025); 49ers.com (April 25, 2024); CBS San Francisco, April 24, 2026; the Nashville Tennessean via Yahoo Sports, April 30, 2022; Mel Kiper Jr.'s grades as carried by NBC Sports Bay Area, May 2, 2022 and May 1, 2023.

Filed under 49ers

More on Brock Purdy

His page →
Five takeaways in one half, and the 49ers never sacked Kirk Cousins
Takeaways

Five takeaways in one half, and the 49ers never sacked Kirk Cousins

San Francisco beat Las Vegas 38-17 at Levi's Stadium on Sunday and is 7-1. The 49ers scored touchdowns on their first three possessions, did not punt, and ran 43 times for 190 yards. Las Vegas turned the ball over on five of its six second-half possessions: Jaden Dugger's 35-yard interception return on the first play of the half, two forced fumbles, and interceptions by Renardo Green and Malik Mustapha. The official game book credits San Francisco with no sacks and six quarterback hits, two of them on the plays Green and Mustapha intercepted. Nick Bosa played 39 of 50 defensive snaps in his first game since Sept. 20, and DeForest Buckner played 34. Jordan Watkins caught all four of his targets for 86 yards and his first NFL touchdown. Christian McCaffrey's 12-yard catch set the Super Bowl-era record for touchdown catches by a running back and was Brock Purdy's 100th touchdown pass. Gracen Halton broke his ankle and is out for the season, Shanahan said; Green (back) and Deommodore Lenoir (foot) did not return.

Sam KezarNov 9, 20265 min read
Nick Bosa plays his first game since September, with Buckner beside him
49ers Gameday

Nick Bosa plays his first game since September, with Buckner beside him

The 49ers (6-1) play the Raiders (4-4) at Levi's Stadium at 1:25 p.m. Pacific on FOX. Nick Bosa is cleared after missing five games and lines up with DeForest Buckner for the first time since the 2019 season. Christian Kirk, Mike Evans and Deebo Samuel are out, and Demarcus Robinson is back off injured reserve. Ten to watch, led by the rookies and second-year players: Jaden Dugger, Gracen Halton, Mykel Williams, Upton Stout, Jordan Watkins, plus Bosa, Buckner, Robinson, George Kittle and Brock Purdy. Inactive lists post at 11:55 a.m. Pacific.

Sam KezarNov 8, 20264 min read
The books have Brock Purdy's MVP place right and his price wrong
The fan tax

The books have Brock Purdy's MVP place right and his price wrong

DraftKings and Caesars have Brock Purdy at plus 350 to win the MVP, second behind Josh Allen. Kalshi has Purdy at 15 cents bid, 16 asked, third behind Joe Burrow, after one Sunday moved the two quarterbacks about ten cents in opposite directions. Against the exchange's midpoint, a $100 Purdy ticket at plus 350 gives up $30.25, the Allen ticket at DraftKings gives up $17.65 and the Burrow ticket gives up $3.75. The 49ers' Super Bowl price carries no such markup. Purdy has the better case than Burrow and a worse price than either.

Casey MontgomeryOct 30, 20265 min read

On the record

Called Shots →
MissedAug 27, 2026

San Francisco carries EXACTLY TWO quarterbacks on its initial 53-man roster on Sunday, August 30. Three or more quarterbacks on that roster grades this WRONG.

Brock Purdy and Mac Jones are the two. The third job was going to be decided by the preseason finale and Kurtis Rourke cannot play in it: Shanahan confirmed three broken ribs on August 25, so Rourke's whole case is the second quarter of one game on August 13 and Adrian Martinez has the other two games plus tonight. The cheap outcome is to keep two and put the loser on the practice squad. What makes this a call rather than a formality is that the club goes into Sunday without having separated its third quarterback at all, which is a live reason to spend the spot, and an injury to Purdy or Jones between now and Sunday afternoon flips it outright.

Latest on the 49ers

The whole beat →
The 49ers ran Las Vegas out of its plan before they took the ball away
49ers Deep Dive

The 49ers ran Las Vegas out of its plan before they took the ball away

San Francisco beat Las Vegas 38-17 on Sunday and is 7-1. The five second-half takeaways will be remembered, but the game was settled earlier. The 49ers' first three drives went 37 plays and 242 yards, took 19 minutes and 23 seconds and ended in touchdowns, and San Francisco ran 25 times for 125 yards before halftime. Las Vegas had the ball for 71 seconds in the first 13 minutes. Trailing by 11 at the half, the Raiders ran six times and threw 24 times after it, and Klint Kubiak said that being in position to throw on every down produces interceptions. The pass rush did not cause the turnovers: Cousins was hit twice on eight first-half throws and four times on 24 second-half throws. Two takeaways were punched out of receivers' hands, and one came off a fumbled exchange. The second half also showed a cost. San Francisco threw an interception, was stopped on fourth-and-1 at its own 40, and allowed 222 kickoff-return yards, and Las Vegas started three drives in 49ers territory. The game moved San Francisco's season turnover margin from minus-3 to plus-1. Las Vegas has now allowed 30 or more points six weeks running, so Dallas on Sunday is the first test of whether the formula holds.

Sam KezarNov 10, 20266 min read
The 49ers trade a sixth-round pick for Keenan Allen
49ers Notebook

The 49ers trade a sixth-round pick for Keenan Allen

San Francisco acquired wide receiver Keenan Allen from Indianapolis on Tuesday, deadline day, for a 2027 sixth-round pick, the league transaction wire shows. It is the second trade between the clubs in three weeks, after DeForest Buckner on Oct. 27. Allen, 34, played at Cal and is a six-time Pro Bowler with 1,095 career catches, eighth all time. He had 40 catches for 351 yards and one touchdown in eight games for the Colts, their team lead. The club placed Gracen Halton on injured reserve with a fractured ankle the same afternoon, and its roster page showed 52 on the active roster before Allen was added. Allen joins a receiver room missing Mike Evans and Deebo Samuel Sr. last Sunday. He caught four passes for 26 yards against Dallas in Week 9, and the 49ers play at Dallas on Sunday.

Sam KezarNov 10, 20263 min read
Gracen Halton needs ankle surgery, and both outside corners are day-to-day
49ers Notebook

Gracen Halton needs ankle surgery, and both outside corners are day-to-day

Kyle Shanahan said Monday that Gracen Halton dislocated and fractured his ankle, will have surgery this week and will go on injured reserve. Renardo Green (back) and Deommodore Lenoir (foot) are day-to-day before Sunday's game at Dallas. C.J. West's practice window opens Wednesday, Deebo Samuel could practice Wednesday, and Mike Evans is not expected to.

Sam KezarNov 9, 20263 min read

Earlier on the 49ers

Every Under Is A Man Coming Off A Lost Season
Called Shots

Every Under Is A Man Coming Off A Lost Season

Seventeen season lines, one side taken on each: the 49ers over 9.5 wins, Christian McCaffrey over 900 rushing yards and over 12.5 touchdowns, Brock Purdy over 3,600 passing yards and 27 combined touchdowns, and team sacks over 35 after a 20.0-sack 2025. The three unders are Mike Evans at 900 receiving yards, George Kittle at 700 and Nick Bosa at 12 sacks, and each is a bet on a calendar rather than a player. Thirteen of the seventeen file to the Called Shots ledger and grade when the regular season ends. Four do not: the Deebo Samuel and Nick Bosa lines and the two team-defense lines are argued here and not filed, because at an honest price each of the four is closer to a statement than a call.

Sam KezarSep 6, 20268 min read
The 49ers' Championship Price Sat Out The Preseason
The ruler

The 49ers' Championship Price Sat Out The Preseason

The 49ers futures number quoted on every odds page cannot express any revision smaller than 11.11 percent of its own value, and nothing the preseason did to San Francisco was that big. Here is the arithmetic, the two cheaper books that registered what the expensive one could not, and why twenty-seven of the thirty-two teams on the board have the same problem.

Casey MontgomeryAug 28, 20268 min read
The Melbourne Asterisk
Roster math

The Melbourne Asterisk

Opening the season in Melbourne compresses every rehab timeline the 49ers are running. The PUP decisions on George Kittle and Mykel Williams are the ones it touches hardest.

Grab Some PineJul 25, 20265 min read