With Week 2 of the NFL season coming to an end, it’s time to look at the performances that weren’t quite up to scratch. Here are the lowest-graded players at every position in Week 2, with a few surprising names appearing on the list—including arguably the best NFL quarterback of the past decade.

Week 2 offense

Quarterback: Aaron Rodgers, Green Bay Packers, 34.1 overall grade

Aaron Rodgers suffered through the worst game of his career on Sunday night, and for the first time in his NFL tenure, finds himself on this list. He displayed poor ball security, fumbling three times against the Vikings. When it came to actually throwing, he struggled just as much. He was missing targets, and occasionally tried to force a dangerous pass. His adjusted completion percentage of 58.8 was the second-lowest mark of the week among quarterbacks.

Running back: Jeremy Langford, Chicago Bears, 38.5

It was a tough night for Jeremy Langford, as he struggled to get anything going against a strong Philadelphia front. Langford carried the ball 11 times and gained just 29 yards. He failed to force a single missed tackle, and if you take away his longest run of 16 yards, he averaged only 1.3 yards per carry. Langford also showed some very poor ball security on a costly fumble that helped turn momentum.

Wide receiver: Davante Adams, Green Bay Packers, 38.1

Davante Adams joins his quarterback on this list, as he failed to do much of anything on Sunday. Adams was targeted six times, catching three of those passes for 26 yards. He gained just 3 yards after the catch, and also had a fumble.

Wide receiver: Anquan Boldin, Detroit Lions, 42.3

Anquan Boldin recorded one more catch on one more target (four of seven) than Adams for 48 yards and a touchdown. But the Lions' WR also had two bad drops on the day, and didn’t really contribute as much as the Detroit offense would have hoped.

Slot receiver: Albert Wilson, Kansas City Chiefs, 42.7

This is the second week in a row that Albert Wilson makes this list, as he once again had a tough game. Wilson had just three targets on the day, and while he caught two of them, he dropped the third. A mere 11 yards gained isn’t nearly good enough to remove himself from this team.

Tight end: Jesse James, Pittsburgh Steelers, 33.3

As mentioned in our 10 worst players of the week article, James wasn’t really that bad as far as receiving goes. However, he struggled mightily when it came to blocking (specifically run blocking). He allowed a team-high seven run stops and had countless more snaps where his man blew up the play.

Left tackle: Matt Kalil, Minnesota Vikings, 35.3

Matt Kalil had a tough time when blocking for his quarterback on Sunday night, allowing a sack, a hit, and three hurries. He had four more plays where he was beaten by his man, but no pressure was recorded. Kalil also allowed two run stops.

Left guard: Mark Glowinski, Seattle Seahawks, 38.8

The Seahawks' offensive line had a tough go of things against an extremely strong Rams' front-seven, and Glowinski was a big part of it. He mostly struggled with the passing game, as he allowed two hits, three hurries, and a few other plays where he was beaten.

Center: Mitch Morse, Kansas City Chiefs, 40.7

Sunday was a day to forget for Mitch Morse, who struggled with both pass- and run-blocking. He allowed three quarterback hurries and multiple run stops against the Texans.

Right guard: Chris Chester, Atlanta Falcons, 32.5

Chester struggled all around on Sunday for the Falcons, allowing a sack and three quarterback hurries. When blocking the run, he allowed six run stops, and failed to make much of an impact at any point of the game.

Right tackle: Garry Gilliam, Seattle Seahawks, 29.1

Gilliam was beaten up and down the field by Aaron Donald and the Rams' defensive line. He surrendered four run stops—three for losses—three QB pressures, and three other plays where he was beaten on the rush.

Week 2 defense

Edge defender: Kony Ealy, Carolina Panthers, 38.6

Kony Ealy was close to invisible when rushing the passer on Sunday, recording just one QB hit against the 49ers. He struggled even more against the run, posting a well-below-average grade, thanks to his being moved around frequently and missing two tackles.

Interior defender: Kendall Langford, Indianapolis Colts, 37.1

Despite playing 36 snaps against Denver, Langford didn’t record anything of mention on Sunday: not a sack, hurry, pressure, or even a tackle. This is definitely a game Langford would like to forget.

Interior defender: Jared Odrick, Jacksonville Jaguars, 37.7

Jared Odrick made this team mostly due to his undisciplined play, as he recorded three costly penalties versus the Chargers. He also struggled to make much of a mark anywhere else, though, as he was beaten multiple times in the run game.

Edge defender: Albert McClellan, Baltimore Ravens, 37.2

McClellan was almost non-existent for the Ravens, as he failed to record a single pressure when rushing the passer. He made just one tackle versus the Browns in 45 snaps.

Linebacker: Zachary Orr, Baltimore Ravens, 34.5

Zachary Orr had a tough time in coverage versus Cleveland, as he allowed four of five targets to be caught for 35 yards and a few big first downs. Orr also graded below-average against the run, as he made just one solo stop on the afternoon.

Linebacker: Kwon Alexander, Tampa Bay Buccaneers, 32.7

It was a game to forget for Alexander, as he failed to make much of an impact anywhere. In the run game, he managed to record four stops, but he also missed three big tackles. When he dropped into coverage, he allowed two catches for 74 total yards.

Cornerback: Damarious Randall, Green Bay Packers, 22.1

Damarious Randall was absolutely torched by the Vikings—more specifically, by WR Stefon Diggs. The highest-graded CB in Week 1 was targeted eight times and allowed seven catches for 161 yards and a touchdown on Sunday night. He also recorded a missed tackle in the inaugural Minnesota home game at U.S. Bank Stadium.

Cornerback: Stephon Gilmore, Buffalo Bills, 25.9

The Bills' secondary was torched by New York Jets receivers all Thursday night, and Stephon Gilmore was at the root of it all. Gilmore saw eight targets and allowed seven of them to be caught for 129 yards. Almost all of those receptions went for big first-down conversions.

Slot corner: Tramon Williams, Cleveland Browns, 47.7

Williams wasn’t horrible versus the Ravens, but he did allow all five targets he saw to be caught for 48 yards. A few of those catches went for big first downs, as well.

Safety: Keith McGill, Oakland Raiders, 32.3

McGill allowed all six targets he saw in coverage to be caught for 98 yards, including a 44-yarder to rookie TE Austin Hooper. He also missed a tackle in the run game and failed to make any stops.

Safety: Shawn Williams, Cincinnati Bengals, 38.1

Williams had a less-than-ideal day for the Bengals, as he missed two tackles and allowed two catches for 20 yards and a big touchdown.

Week 2 special teams

Punter: Kevin Huber, Cincinnati Bengals

Kevin Huber punted the ball nine times for an average of 45.2 yards, albeit in poor weather conditions. Over half of his punts were returned, and only three of those punts landed inside the 20.

Kicker: Connor Barth, Chicago Bears

Connor Barth missed a 31-yard field goal on Monday night, and also had a tough time with his kickoffs, as none of them went for touchbacks.

Kick returner: George Atkinson, Cleveland Browns

Atkinson had one return for just 13 yards, and muffed a kick.