The first round of the 2018 NFL draft was all about the quarterbacks. We had five in the first round. Day 2? That's where running backs and receivers went flying off the board. And Day 3 is where we saw teams trying to find gems and value. So who had the best class?

As I say every year, the draft is about adding talent, but winning is about talent development. I know I can't grade a class on performance for at least a few years, which is a reason I audit old drafts. What I do here is assess two main things, using my own player grades as the prism:

How effectively did a team address key personnel voids?

How efficient were they in maneuvering on the draft board?

Grading scale: In my mind an A means it's exceptional; a B is pretty good; a C is average, with hits and questions marks; a D means below average with some big questions. An F ... well, keep reading.

Let's go from best class to worst class, with classes with the same grades in alphabetical order. Click the links below to go directly to your favorite team's grade:

ARI | ATL | BAL | BUF | CAR | CHI | CIN | CLE | DAL | DEN | DET | GB | HOU | IND | JAC | KC | LAC | LAR | MIA | MIN | NE | NO | NYG | NYJ | OAK | PHI | PIT | SF | SEA | TB | TEN | WAS

Buffalo Bills: A

Top needs: Quarterback, offensive line, wide receiver

That the Bills were targeting a quarterback tends to make you forget this was a playoff team, so the first round was an interesting mix, as they added both high-upside potential at the game's most important position, and also immediate help at a spot where rookies can often be found contributing. They gave up some notable draft value in second-round picks to maneuver, but I'm not sure any team added this kind of high-upside talent. Key word: upside.

We know Josh Allen (pick 7) needs development as a player with great traits but lacking polish out of Wyoming, but development is a given for any QB. The addition of Tremaine Edmunds (16) means that the Bills managed to get two of my top 11 players in this draft class, and Edmunds is likely to help right away. The useful immediate help and long-range upside wasn't limited to Round 1, either. Harrison Phillips (96) is an interior disruptor who can jump into the mix in Week 1. Kyle Williams won't play forever (probably?) so this was a good fit. Taron Johnson (121) can get on the field early. He won't be a No. 1 corner, but in the fifth round, he's a decent get. Ray-Ray McCloud (187) is a wildcard, but he can jump into the return game and could factor into the wide receiver depth chart.

Yeah, it'll come down to Allen, but if he reaches his upside, you change the direction of the franchise. He could be a perfect fit in Buffalo. As it always goes with big bets on quarterbacks, time will tell the story.

Top needs: Wide receiver, cornerback, defensive end

Like their NFC South rivals in Atlanta, the Panthers went with a wide receiver in Round 1, taking Maryland's D.J. Moore at No. 24. I'm a big fan of Moore, who is more than a workout warrior, though he put up freakish numbers at the combine with a 4.42 40 time and 39.5-inch vertical. He was productive for the Terps, and he's great after the catch. He runs through arm tackles, and he's built like a tailback. The Panthers needed a guy like that for Cam Newton, and it wasn't going to be veteran Torrey Smith (another Terp), who was brought in last month. Moore could be Newton's favorite target in a hurry.

After parting ways with Daryl Worley, the Panthers needed cornerbacks to compete for the spot opposite James Bradberry. They added two on Day 2 with Donte Jackson (pick 55), one of the fastest players in this class (4.32 40), and Rashaan Gaulden (85), whom I had rated as more of a sixth-round talent. (Remember that veteran safety Kurt Coleman is no longer with the team.) Jackson is only 5-10 and 178 pounds, but he's an elite athlete. Ian Thomas could develop into the heir apparent to Greg Olsen, and to get my fourth-ranked tight end at 104 is great value. Marquis Haynes (136) is another good player on Day 3.

If there's an issue with this class, it's not getting a pass-rusher. Are they really going to rely on 38-year-old Julius Peppers to play almost 500 snaps again? Mario Addison is also going to be 31 by Week 1, and you face Matt Ryan, Drew Brees and Jameis Winston six times a year in that division. I liked the depth of this class, though, and won't ding it too much. There is value from top to bottom.