The Vikings finished their season Sunday with an 8-8 record, suggesting there were an equal number of good and bad things that happened. Raise your hand if it felt that way. I'm waiting. I can wait all day. Did everyone break their arms in a tragic New Year's Eve accident? Right. It doesn't feel like a lot of good things happened after the Vikings lost eight of their last 10 meaningful games of the season. But before we try to forget everything that just happened, let's take one more look back at the season — the best of times, the worst of times and the questions that are still ahead:

Breakout performer (offense): Wide receiver Adam Thielen. With apologies to Sam Bradford, who put up some great numbers (including an NFL record for completion percentage), this award goes to the former Detroit Lakes and Minnesota State receiver. A lackluster finale left him just short of 1,000 yards receiving for the season, but that's still roughly 1,000 more than a lot of people might have predicted he would have. Thielen made tough catches and finished with 69 grabs for 967 yards, cementing a future in the league.

Breakout performer (defense): Danielle Hunter. The 2015 third-round pick finished the year with 12.5 sacks and established himself as a pass-rushing force. People are now 53 percent more likely to know his name is pronounced Duh-neel instead of Dan-yell.

Biggest disappointment (offense): Laquon Treadwell. The emergence of Thielen (and re-emergence of Cordarrelle Patterson) coincided with a season in which the 2016 first-round pick caught just one pass while struggling to get on the field because of either performance or injury. Everyone said the Vikings needed a big wideout. They drafted one, and he had no impact.

Biggest disappointment (defense): Anthony Barr. After being a big-play machine his first two seasons, Barr's 2016 season was curiously quiet when it came to splash plays. The linebacker had just two sacks, one forced fumble and no interceptions.

Moment that changed the season (nongame): Teddy Bridgewater's season-ending injury. This one is a no-brainer. Even with all that has happened since then, there's no denying 2016 would have played out much differently without it.

Moment that changed the season (in-game): After consecutive disappointing losses to Philadelphia and Chicago, the Vikings — under new interim offensive coordinator Pat Shurmur — scored a late touchdown to take a 16-13 lead on Detroit at U.S. Bank Stadium. With just 23 seconds left, a season-stabilizing victory was within their easy grasp. Instead, the Lions pushed down the field and Matt Prater boomed a tying 58-yard field goal at the end of regulation. Instead of going to 6-2, the Vikings lost in overtime and fell to 5-3. They chased that game the rest of the season and couldn't catch it.

Best play: Sam Bradford's sweet TD pass to Stefon Diggs in his first start — in prime-time against rival Green Bay — is still the one. Bradford took a big hit but delivered a perfect ball, setting the tone for a victory that looked like it was season-defining at the time.

Worst play: Detroit's game-winning TD in overtime of that aforementioned game, in which Xavier Rhodes and Harrison Smith whiffed on tackles before Golden Tate vaulted into the end zone, was easily the worst. It was the moment where everyone who has seen a Vikings season crumble thought, "uh-oh, it's happening again."