And now we hit the top of the table. If you're somewhere up here, then by default you had a successful season – though only one of these teams ended 2019 the way they wanted to.

Let's write some epitaphs.

LA Galaxy (#8)

They imported a successful, big-name technical director an a successful, big-name head coach and a bunch of new players. It took them a while, but they finally made it back to the playoffs. A GIF is worth a thousand words:

LA went 7-1-1 through April and then fell off a cliff, never really progressing toward anything definitive in terms of a style of play or defensive solidity. They were able to cover up most of that via raw talent when their backs were against the wall, and in the end that was enough to get them back into the postseason.

We spilled way too many words this season wondering when LA would find their final form. The answer turned out to be "as soon as they hit that losing streak in May."

FORMATION & TACTICS: It was almost always a 4-2-3-1 or a 4-3-3, and that's because Zlatan needed wingers to cross him the ball and a midfield to do all the running for him. Their default attacking tactic was "get it to Zlatan by any means necessary" and their default defensive tactic was "oh god oh god how do we defend?"

The Galaxy hit a million crosses and had a number of compelling performances, but they were no better or more cohesive at the end of the year than they were at the beginning.

HIGHLIGHT: "Get the ball to Zlatan by any means necessary" is actually a half-decent strategy, and the man delivered 30 goals. This one – coming, of course, in El Trafico – was his most spectacular:

He is the most ruthlessly inventive finisher I've ever seen.

LOWLIGHT: From May 4 to September 11 they went 6-12-2, so that could be it. Or, after a three-game winning streak in mid-September officially pushed them into the playoffs, they Keystone Cops'd their way to two season-ending losses, which cost them a home playoff game. Those are both good shouts.

But that ain't it. The lowlight for the Galaxy was unquestionably losing the biggest, most important El Trafico yet: The one in the playoffs. LAFC lit them up 5-3 in the Western Conference semifinals, and with that went the Galaxy's last claim of superiority over their crosstown rivals.

REVELATION: Nobody really deserves that tag. Youngsters Julian Araujo and Efrain Alvarez came close at times, but didn't make enough of a dent. Uriel Antuna was absolutely a 2019 revelation for El Tri, but he was much better for his club than he was for his country.

DISAPPOINTMENT: The fact that there was nobody to list above. Araujo was benched after a couple of tough games, and then basically disappeared for the rest of the season. And then when the playoffs came, Guillermo Barros Schelotto decided to go with veteran center back Giancarlo Gonzalez at RB instead of Araujo.

Gonzalez had one of the very worst outings I've ever seen an MLS defender put forth as LAFC just battered him. What would've happened if Araujo had been allowed to play through his youthful nerves during the regular season and was actually trusted to contribute come playoff time? The Galaxy would've, at the very least, had a real right back to throw out there.

PLAYERS TO BUILD ON IN 2020: W Cristian Pavon, MF Sebastian Lletget, CM Jonathan dos Santos, RB Julian Araujo, CB Diego Polenta, GK David Bingham

Zlatan's not coming back. I don't think Romain Alessandrini is, either, nor are Antuna and Favio Alvarez, both of whom were in town on loan.

In other words there's going to be a lot of work done on this roster over the winter, and at least one gigantic addition, probably at center forward. Regardless, the Galaxy have a talented core to build around. The key is they have to actually build something.

OFFSEASON PRIORITY: Replacing Zlatan is obviously going to be No. 1 (and yeah, I'll look dumb here if he comes back but I'm willing to take that risk), but it needs to be noted again that LA's defense was very, very porous. They shipped 59 goals and actually had a negative goal differential, and were as likely to fall on their faces against bottom-of-the-table teams as they were against the likes of LAFC.

It's not a spending thing – they've thrown tons of money at that backline over the past couple of years. Schelotto has to figure out how to get his team to be more compact and has to get some improvement from within.

Minnesota United FC (#7)

Three-year plan! Three-year plan! Technically, the first 36 months of Minnesota United's MLS existence are an as-expected success. A GIF is worth a thousand words:

They basically scrapped the first two years of the plan in the offseason and brought in seven or eight new starters (depending on how you want to fit Mason Toye into that equation) and it not only got them above the Mendoza Line, it actually got them a home game at their gorgeous new stadium in the playoffs.

Loons fans were ecstatic and had every right to be.

FORMATION & TACTICS: 4-2-3-1 almost all the time, though Adrian Heath did get a little bit funky in big moments by going to variations on the 4-3-3 or 4-5-1.

Whatever the formation, the approach was almost always to sit deep and try to get out into space to take advantage of the surfeit of speed they could scatter throughout the attack. They also took a ton of risks with overlapping right fullback Romain Metanire, which was a huge tactical advantage in the first half of the season.

HIGHLIGHT: From June 29 through August 4 they went 5-0-2 and solidified themselves as a playoff team. On August 27 they went to Atlanta for the U.S. Open Cup final, went down early... and then pounded the ever-loving hell out of the Five Stripes for the game's final 70 minutes, putting in a lion-hearted if ultimately futile effort. Four days later they went to downtown LA and Toye turned into Thierry freaking Henry for 90 minutes – he put in one of the most stunning individual performances of the season, which led to one of the most stunning results of the season.

All those have great claims, but the real highlight was the opening of Allianz Field:

It's gorgeous, the fans were nuts, and the game was fun.

LOWLIGHT: There wasn't one particular moment, but it said something about this team that they went into both the stretch run and the postseason with no real idea of their best attacking group, and with no ability to actually create chances with any consistency. They scored just 12 goals in their final 12 games over the final two months of the season (all competitions).

So I guess the real answer is "that four-minute stretch of the Western Conference semis when an ugly scoreless draw turned into a hopeless 2-0 deficit."

REVELATION: Toye? Starting left back Chase Gasper? Do-everything d-mid/center mid/right mid/right back/left back Hassani Dotson?

What became clear by mid-summer is that Minnesota had absolutely crushed the past two drafts. Toye worked his way into the rotation, then worked his way into the XI by scoring goals both clutch and stunning. Gasper was relentlessly competent on both sides of the ball. Dotson scored some bangers, but what really makes him stand out is his defensive range and ball-winning ability.

All three guys are already with the USMNT program at either the full level (Gasper) or with the U23s (Toye and Dotson).

DISAPPOINTMENT: You can't spell "Disappointment" without "DP." The first two DPs in club history – Darwin Quintero and Angelo Rodriguez – both massively under-delivered in their respective second seasons with the club, as both eventually lost their starting spots.

Darwin stopped producing at his previous high rate, which when combined with his lackluster defense, earned him super-sub status. Angelo just never produced in the first place. Both are expected to be gone this offseason.

PLAYERS TO BUILD ON IN 2020: FW Mason Toye, CM Jan Gregus, DM Ozzie Alonso, DM Hassani Dotson, RB Romain Metanire, LB Chase Gasper, CB Ike Opara

Adding just one of Opara, Alonso, Gregus or Metanire in the offseason would've been a coup. Going four-for-four was a stunning haul, and the difference between a goal-leaking also-ran and a very-hard-to-break-down playoff team. Opara was monumental in winning Defender of the Year and Alonso spent a lot of time looking like an in-his-prime version of himself.

Vito Mannone, who somehow won Goalkeeper of the Year, was also pretty good, but as he was in St. Paul on loan it's unclear if he'll be back.

OFFSEASON PRIORITY: Know who's been mentioned as somewhere between possibly and definitely leaving Minnesota this offseason? Literally every rotation attacker on the roster except Toye.

It seems certain that they are gong to almost completely rebuild that front four (Quintero's already gone) – and that'll include figuring out whether Toye is ready to push through to another level and be a consistent starter, as well as figuring out what Thomas Chacon, a young DP playmaker from Uruguay, has to offer.

Heath is the one who'll be calling the shots now, as he earned himself a bigger say over roster decisions following this year's success.

Real Salt Lake (#6)

RSL are super ambitious in their way, and super committed to building via their academy, and took a concrete step forward this year. Even if, at times, things got pretty hairy. A GIF is worth a thousand words:

RSL had a slow start, terminated the contract of head coach Mike Petke mid-season, an under-the-radar parting of ways with GM Craig Waibel at the end of the year, some underperforming veterans and a few underperforming youngsters, the retirement of a legend, and a lot of "ok, what's next?" scattered throughout.

And yet they managed to finish third in the West, host and win a home playoff game, and get within 180 minutes of an appearance in MLS Cup.

FORMATION & TACTICS: Freddy Juarez took over as interim head coach at the end of July, but even before then RSL had pivoted away from the type of reactive, "planning for the enemy" type of tactical approach that had defined Petke's tenure and moved more toward identifying and improving upon their strengths.

It often worked, even if they still struggled to create as many clear-cut chances as a team with their talent should.

All of the above almost always happened out of a 4-2-3-1 featuring lots of sideline-to-sideline switches and a middle block. And they were hella stingy defensively.

HIGHLIGHT: Throughout the regular season they kept proving, time and time again, that they were a cut below the other playoff-caliber teams in the Western Conference. They went a ghastly 1-9-2 against West playoff teams from March through September.

And then they hosted the Timbers in the first round of the playoffs:

It was a very, very big win, and a very, very big moment. The fans got to send Nick Rimando out right in his home finale.

LOWLIGHT: The first 10 games of the season were brutal as RSL went 3-6-1 with a -6 goal differential and looked once again like a team that had no hope of spinning the previous season's momentum into anything meaningful. Players were benched, rotations were ragged and everyone was deservedly on the hot seat.

The rest of the way they were 13-7-4, +11. They really did deserve that third seed.

REVELATION: I don't think anyone outside of Utah realizes how good Aaron Herrera is. RSL asked him to cover a ton of ground going endline-to-endline, left him defending in isolation almost constantly, and used him as one of their primary progressors of the ball. And man, his right foot is really, really underappreciated:

Here's all four of them in action. Love the toughness from Erik Holt (who is a throwback hard-man CB) and this outside-of-the-boot through-ball from Aron Herrera is so, so sweet pic.twitter.com/5liKT3p4Yc — Matthew Doyle (@MattDoyle76) July 25, 2019

Herrera was superb all year long.

DISAPPOINTMENT: The top four players in last year's 22 Under 22 were Alphonso Davies, who just drilled Jadon Sancho over the weekend; Tyler Adams, who was instantly one of the best defensive midfielders in the Bundesliga when he arrived in January; Diego Rossi, who's going to win it this year and then be sold for something like $15 million; and Yangel Herrera, who's starting and going HAM for a Granada team that has legit top 5 aspirations in La Liga this season.

In fifth place was Jefferson Savarino, who in 2019 was... pretty ok. He had his moments, including the match-winner in the playoffs, and improved his regular-season goal total from seven to eight.

But it's hard to say he noticeably improved his game in any meaningful way. Savarino was expected to be exceptional this year. He was just fine.

PLAYERS TO BUILD ON IN 2020: W Jefferson Savarino, AM Albert Rusnak, CM Damir Kreilach, DM Everton Luiz, RB Aaron Herrera, CB Nedum Onuoha, CB Justen Glad

RSL have depth, experience and talent up the spine, and a few guys who have, at times, been match-winners. Thanks to their academy and USL team they also have a steady stream of youngsters pushing through into the first team, and it's up to Juarez – or whoever the head coach ends up being (for what it's worth I think it will be Juarez with Jason Kreis as GM) – to figure out how to get those players into spots where they can make a difference against the best teams in the league.

OFFSEASON PRIORITY: What happens if they get an offer for Savarino? Or one for Glad? Or one for Rusnak? Are they waiting to move Rusnak and Savarino after next summer's continental championships, with Glad and Herrera potentially being moved after the Olympics? Is there a clear plan that everybody's on board with... even before everybody's actually on board (there is still no GM, remember)?

They need to figure all that out, and how to progress over this year's accomplishments, and whether they can fit Sam Johnson and Joao Plata in somewhere, and everything else on down the list.

Beyond that, the true issue for RSL is that they're just a collection of good-to-very good players. Other than Herrera I'm not sure they have a single "he's a top five guy in the entire league at his spot" player on the entire roster.

Will they go out and get an attacker like that? It'd help. A lot.

Philadelphia Union (#5)

One step forward. Another step forward. And then another. Aim for the top. A gif is worth a thousand words:

...but, you know, don't quite get there.

For the second straight year and third season in four, a lot of what Philly did was absolutely awesome. They played some gorgeous possession soccer, added a ton of both tactical and formational flexibility, got improvement from players both young and old, and won a playoff game for the first time in team history. It was dope to watch.

But when it was all said and done, there was little question that they're just short of the league's elite.

FORMATION & TACTICS: For the first 60 minutes of most games it was usually a 4-4-2 diamond, and then for the last 30 – after Ilsinho came on – it switched either to a flat-ish 4-4-2 or to a 4-2-3-1. As in years past they were one of the league's best possession teams, but the new wrinkle was that they were also one of the league's best pressing teams, playing more direct and vertical especially once they got to the final third.

Jim Curtin was able to toggle between a ton of looks and use that flexibility to his great advantage throughout.

HIGHLIGHT: The 3-1 win over Atlanta was probably the best regular-season win in Philly's decade-long history. It was momentous, and the fans lost their minds. They deserved it.

But it paled in comparison to the mind-bending, come-from-two-goals-down-twice 4-3 extra time win over the Red Bulls in the first round of the playoffs:

I know some of the Sons of Ben personally. They formed their supporters group in 2007 and basically willed the Union into existence. They have seen 10 years of sometimes good but often abjectly dispiriting soccer. They have built something that has lasted and will continue to last despite any sort of postseason payoff.

And then they got to witness literally one of the most memorable postseason wins in MLS history. I'm genuinely happy for them.

LOWLIGHT: After that win over Atlanta, Philly went 1-3-1 to close the regular season. Granted it was a woodchipper of a schedule, but the point was that they had a path to the top of the Eastern Conference and slipped their way to third because they just weren't quite as good as the likes of LAFC or NYCFC.

And of that stretch, the eighth circle of hell was in warm-ups before the NYCFC game when Kacper Przybylko hurt his foot and was lost for the rest of the year. He was the 15-goal scorer they had desperately needed, and now what?

REVELATION: Przybylko was it, man. The big German was a reclamation project courtesy of GM Ernst Tanner, who hit on most of his signings over the past 18 months which was huge in creating both depth and dynamism. I could easily add LB Kai Wagner or CM Jamiro Monteiro here instead of Przybylko, but goals are the currency of the game, and when you find a 15-goal scorer for basically nothing it's like manna from heaven.

The gutting thing about it is that given Przybylko's injury history, will he ever be fit enough to play 2000 minutes in a season again?

DISAPPOINTMENT: Przybylko's injury. Alejandro Bedoya's injury. Ilsinho and Haris Medunjanin dropping off precipitously over the final six weeks of the season and into the postseason.

Those last three guys are all in or approaching their mid-30s, so it felt like this might've been their window, and they just didn't have enough gas to get to the finish line. If they're all back next yer (and I think they will be), Curtin's going to have to take a page from the NBA's book and do some load management.

PLAYERS TO BUILD ON IN 2020: FW Sergio Santos, AM Brenden Aaronson, CM Alejandro Bedoya, LB Kai Wagner, CB Mark McKenzie, CB Jack Elliott

This list could keep going, since the Union are two deep almost everywhere and have more talent coming through the ranks of both their academy and USL side. Aaronson, for example, was a very pleasant surprise (and now needs to take the next step by finish off more plays around the box).

I'm leaving off Monteiro, whose status is in flux as he spent the season in Philly on loan, and goalkeeper Andre Blake, who had a massive regression for both club and country in 2019. It wouldn't shock me at all if there was an open competition for the No. 1 shirt heading into next season.

I'm also leaving off Ilsinho. He was to the Union what Data was to TNG – a cheat code who just repeatedly got them out of impossible situations. And I'm sure he'll continue to be a weapon next year, but I don't think they can count on another god-like performance from him.

OFFSEASON PRIORITY: They have to figure out how to bring Monteiro back. He's a do-everything CM – press, win second balls, pass, get on the ball a ton in tough spots, fill lanes, play brave – that's almost irreplaceable. Tanner has said that negotiations hit an end point and the Union are looking elsewhere, but I'm not sure I believe that. Monteiro was too good.

After that, it's time for some cold-eyed, ruthless assessment about Przybylko, Ilsinho and Medunjanin. I do expect all three to be back, but if those are central players in 2020, how much confidence can the Union have that they'll be taking another step forward?

Seattle Sounders (#4)

There really is only one team happy at the end of the year, and it doesn't really matter how solid their place is at the top. A GIF is worth a thousand words:

The Sounders let the best d-mid in MLS history walk at the end of last season, and lost the best CB in MLS history to injury and eventual retirement at the start of this season. They had other injuries and more international absences than just about anybody throughout the year, and their star striker didn't really bail them out all that often, and eventually they just had to retreat into a shell and counterattack their way through the final two months.

And then they just kept using that recipe right up to and through the final game of the season, at which point they lifted their second MLS Cup. Never in doubt!

FORMATION & TACTICS: Brian Schmetzer has a very simple formula: Put your best players in their best spots, keep it simple, and let the talent do their jobs.

For Seattle that meant a 4-2-3-1 pretty much every single game, with very few bells and whistles. After Chad Marshall bid adieu what had been a front-foot, always-possess-and-overload-the-left-side 4-2-3-1 started inching deeper and deeper, and by August the Sounders were almost entirely committed to playing on the counter.

HIGHLIGHT: Only one team gets to do this at the end of the year:

Check out the hashtag for more.

LOWLIGHT: On May 4 Marshall played his eighth game of the season and the final game of his career. Seattle were 5-0-3 in those eight games.

Fast forward to August 17, a 2-2 draw at the Galaxy, and Seattle were on a four-game winless skid with just one win in six. More telling: to that point in the season they were 6-8-4 with a -8 goal differential without Marshall. They didn't even seem like an average team without him – they were well below average.

REVELATION: Nobody really counts as a revelation, I don't think. If you look at this roster they're just stuffed with full internationals, productive MLS veterans, guys who've been to the World Cup, in-their-prime players from good leagues, etc. etc. etc.

I think the closest we could come to an actual "revelation" would be Jordan Morris looking like an honest-to-goodness winger rather than just a forward who's been shunted out wide:

He hit another level in the second half of the season, and then just buried FC Dallas in the playoffs.

DISAPPOINTMENT: I'll let Cristian Roldan have a few words here:

"I think it's important that you not only go for MLS Cup trophies but Supporters' Shields and Open Cup. In the past we've been a club that has won those type of trophies and it's time to get back to that. Obviously winning MLS Cup is nice, but it's time to put Seattle up there with the great teams and we've got to do that next year by winning Supporters' Shield and getting back into the finals again."

Preach, man. The Sounders were definitely the best team in the playoffs and absolutely deserved to win MLS Cup, but will they be remembered as one of the great MLS teams? Nah. And I bet if you polled Seattle fans and got honest answers, they'd tell you that the 2014 Sounders team is still the best in club history.

PLAYERS TO BUILD ON IN 2020: FW Raul Ruidiaz, W Jordan Morris, AM Nico Lodeiro, CM Cristian Roldan, DM Gustav Svensson, GK Stefan Frei

That is arguably the best core in the league, with three match-winners in attack, a brick wall of a d-mid, and a bigger brick wall of a goalkeeper. Ruidiaz is already a playoff legend, and Lodeiro is, at this point, probably the most underrated No. 10 in league history. His ability to influence the game all over the field is astounding.

The truth is Seattle could probably make zero moves this offseason and still be expected to approach 60 points and a playoff run.

OFFSEASON PRIORITY: Notice I didn't list any of the defenders who played in MLS Cup in the above section? Well, there are whispers and questions about all of them. Kelvin Leerdam might want to go home, Kim Kee-hee might be able to double his salary in Asia, Roman Torres might be done in Seattle and Brad Smith's loan might not be extended.

Garth Lagerwey et al might have a lot to figure out here. Or they might have nothing at all.

The other big question is the Victor Rodriguez situation. The TAM winger often looks the part when he's healthy, but that hasn't been often – just 9g/10a across three regular seasons. He was obviously awesome in MLS Cup, but I think it'd be kind of crazy to go into next season expecting him to play 2000+ minutes across all competitions.

Did I mention they have the ability to open a DP slot? Yeah. Yeah they do.

Atlanta United (#3)

A season of change. A season of worry. An offseason to come with more of the same. But in the midst of it all, two more trophies. A gif's worth a thousand words:

Everybody knew it was going to look and feel different under Frank de Boer, who replaced Tata Martino last winter. But... man. They just barely held on.

For a good chunk of the year Atlanta United just barely held on despite all their institutional knowledge. There were a double-handful of listless losses, a pretty tepid CCL campaign, another underperforming, unhappy, high-priced import, and it all ended with an inexplicable home loss in the postseason.

But guess what? Their August was the best month any team had at any point this season, and they added two meaningful trophies to the case.

FORMATION & TACTICS: De Boer had to blow through the entire encyclopedia, shifting from a 3-4-2-1 to a 3-5-2 to a 4-3-3 to a 4-2-3-1 back to a 3-4-2-1 and then into a 4-3-3 and over to a 4-3-2-1 and then a 4-2-3-1. He had his team play a mid-block, a low-block and even once in a while they played high and pressed. They usually built slowly and methodically – some might say ponderously – from the back, until mid-summer at which point they abandoned their structure and just let fly.

The only time it really looked structured and fluid was in August, when they were legitimately great.

HIGHLIGHT: There were and have been and likely will continue to be real questions about the value of the Campeones Cup, but holy hell did both Atlanta and Club America freaking go for it in the second-ever version of the competition. This was one of the most entertaining games any MLS team played in for 2019, and it came against the most successful and storied club in North American history:

Piojo Herrera played his starters, folks. And he was furious with his team, his opponents and the refs. Hook the Campeones Cup up to my freaking veins – I can legitimately not wait until next year's version (don't let me down, Sounders).

Also, if Darlington Nagbe played even 50% of his games at that level he'd be a $40 million player bossing the midfield for Arsenal.

LOWLIGHT: Toronto FC turned their season around after the Gold Cup by getting Michael Bradley and Jozy Altidore back, and adding Omar Gonzalez, and generally finding their rhythm. But by late October in the Eastern Conference Final, both Jozy and Omar were hurt and Bradley put forth 20 minutes of awful soccer, and Atlanta got a goal and won a penalty, and they were about to host their second straight MLS Cup, weren't they?

Nope. The chopping and changing De Boer did all year meant that the Five Stripes never really developed a rhythm or identity, and unlike seasons past they were definitely not the type of team that turned a one-goal lead into two or three. The momentum shifted as soon as Quentin Westberg saved that Josef penalty, and then Nico Benezet got that equalizer, and Atlanta only sporadically threatened the rest of the way.

It was a listless showing. Some of the players have even been subtweeting about the lack of adjustments from De Boer when the game was there for the taking.

REVELATION: Miles Robinson didn't play in his rookie year. In his second year he played 272 regular-season minutes (and 91 flawless playoff minutes, to be fair). A realistic hope for Season No. 3 would've been somewhere over 1,000 minutes and an eye toward a starting job in 2020.

Robinson skipped that step. He walked his way into the XI in preseason, locked it down and was essential damn near all year long, eventually earning his first USMNT caps and second place in Defender of the Year balloting. He is at least a partial answer to the eternal "but what if our best athletes played soccer?" question, and he married his natural abilities with improved reading of the game and much-improved passing.

Atlanta will soon face a question of whether to try to hold onto Robinson into his mid-20s or to sell him to a big club in a big league for many, many millions of dollars.

DISAPPOINTMENT: Robinson's injury with the USMNT just before the playoffs started is certainly up there, but it's not like Atlanta were eliminated because they couldn't defend. They went out when they did because their attack – the most expensive in the league – never coalesced into anything irresistible.

Pity Martinez was a disappointment. Ezequiel Barco improved year-over-year, but between injuries and international absences he wasn't super impactful (and like everyone else, he disappeared against TFC after the first 20 minutes). Tito Villalba continued his downward trend, Dion Pereira didn't add much, and it's best at this point to not even mention Andrew Carleton.

Josef was actually better in 2019 than 2018 in terms of overall contribution and leadership. If he hadn't been that, this season would've ended up as a fiery wreck by mid-summer.

PLAYERS TO BUILD ON IN 2020: FW Josef Martinez, AM Ezequiel Barco, CB Miles Robinson, GK Brad Guzan

And now it gets weird. The truth is you could go about 20 names deep into this Atlanta roster and be nodding the whole way – they have a ton of talent. But it's an open question re: how much of that talent will return, or even wants to return. Michael Parkhurst has retired, Nagbe's already been traded, Villalba sure as hell isn't coming back, and... man, I just remain absolutely shocked at Julian Gressel's in-some-sort-of-limbo status.

The four guys listed above are the only four I think are above 65% likely to return.

OFFSEASON PRIORITY: Figuring out all of that stuff above! I didn't even list a bunch of foundational pieces from their 2018 MLS Cup run – guys like Leandro Gonzalez Pirez, Franco Escobar, Eric Remedi and Jeff Larentowicz. And I didn't list Pity! They spent around $15 million on him last year, and now... maybe this was it? It sure seemed like it for a good chunk of the season.

Will Emerson Hyndman return? Will George Bello's career go the same way as Carleton and Chris Goslin's? If they're giving De Boer control over the roster, where's he going to shop and what are his preferred type of players?

I don't think a team that's been this good for three years should be in this much flux, but here we are.

NYCFC (#2)

It took a while to get going, but when it did... man, NYCFC were so precise, so disciplined, so absolutely sure of how to navigate the season. Couldn't see any real issues coming. A GIF's worth a thousand words:

From mid-April to the end of the season NYCFC were the clear second-best team in the league, and mostly played attractive, attacking soccer while earning that spot. They routinely dismantled unprepared opponents and routinely went toe-to-toe with the other elite teams in the league, winning more than their fair share. Things seemed to be going exactly as they wanted them to.

Then TFC hit 'em, completely out of the blue, in the Eastern Conference Semifinals, and NYCFC's season ended where and when it always does.

FORMATION & TACTICS: Dome Torrent didn't need to dismantle what Patrick Vieira had put together – I still think he'd have been better off just adjusting somethings and tweaking some others – but by late spring we could all see why he did. Dome's team flipped between a 3-4-2-1 and a 4-3-3 with relative ease, usually dominating the ball and creating chances via very, very pretty build-up play.

If you brought your line up too high against them, they'd annihilate you. If you kept them too deep, they'd set up shop between your CBs and midfield and pick you apart. They good and smart and well-drilled and fun.

HIGHLIGHT: I'm not sure there's one exact high point of the season. Entering the stretch from April 21 to July 3, NYCFC were 0-1-5 on the year and had won just four times in their previous 22 games across all competitions. Dome was talking openly about how he was justifiably on the hot seat.

They smoked D.C. United 2-0 at D.C. on April 21, and proceeded to go 7-0-3 over their next 10 games to charge toward and eventually to the top of the East. So there's an argument there.

There's also an argument for their five-wins-in-20-days stretch from mid-August to early September, and their very credible U.S. Open Cup run, which is technically the closest they've ever come to winning any sort of trophy.

But my vote goes for the late-September disemboweling of Atlanta United:

There was some question about who'd top the East and get home field advantage up to that point. After that game that really wasn't a question any longer.

LOWLIGHT: So much for home-field advantage, eh? NYCFC went to Flushing and their season went into the toilet.

REVELATION: Ok, let's parcel out some much-deserved credit:

Don't bet against City Football Group's scouting network. They hit on more of their significant signings than any other team in the league. James Sands stepping into the middle of the backline? Keaton Parks replacing Yangel Herrera in an entirely unexpected way? Hell yes. Taty Castellanos as this year's #PlayYourKids poster child.

I was very, very down on Castellanos after watching him for about 1,000 minutes, but once he hit that point he became one of the best young attackers in the league, toggling between center forward, second forward, and the pseudo attacking mid/inside winger roles that Dome carved into that 3-4-2-1.

DISAPPOINTMENT: And now is all of that work about to be undone? We know what Dome did after he replaced Vieira, and we know how long it took. Will whoever the new coach is – likely Giovanni van Bronckhorst, whose credentials are impeccable – do the same tear-down-then-build-up job as Dome, or will he take what's been working and add layers of complexity and competency on top of it?

I hope for the sake of NYCFC fans it's the latter.

PLAYERS TO BUILD ON IN 2020: FW Heber, W Alexandru Mitrita, FW Taty Castellanos, AM Maxi Moralez, DM Alex Ring, RB Anton Tinnerholm, CB James Sands, CB Alex Callens, CB Maxime Chanot, GK Sean Johnson

Deep, talented, flexible. They have top five players at every spot on the field as long as they bring Parks back for another year (he was on loan from Benfica and still harbors European dreams).

They're not too old and they're not too young. This team should approach 70 points in 2020.

OFFSEASON PRIORITY: I mean, they need a coach. And they need to figure out what GM Claudio Reyna's status is, and then they need to figure out if they can bring Parks back, and for how much.

They also need to offload Jesus Medina – their one recent big signing who hasn't worked out – figure out if they want to/can upgrade at left back, and sign some more academy kids (they've got to get Tayvon Gray).

But bottom line: This team should win their first trophy next year. Maybe it's the Shield, maybe it's U.S. Open Cup, maybe it's MLS Cup, maybe it's even CCL – they're good enough. Time to get some hardware and prove it.

LAFC (#1)

They played the best soccer I've ever seen in MLS, just demolishing teams for most of the season. They ran away with the shield and set all kinds of records along the way. It was perfection. And then the playoffs happened A gif is worth a thousand words:

LAFC went out there every single week and tried to play the game the way Bob Bradley thinks (and the way I think, for what it's worth) it should be played. They compressed space, moved the ball, moved off the ball, were brave in possession and ruthless in attack. They were unselfish and supremely confident.

It was gorgeous.

FORMATION & TACTICS: Usually it was a 4-3-3 that played on the front foot, had both fullbacks overlap, built from the best-passing No. 6 in the league, and played with a fluid yet still defined front three. That definition changed a little bit down the stretch after Adama Diomande checked himself into the league's SABH program – necessitating playing Carlos Vela as a false 9, and changing up where they drew their line of confrontation – but it was still mostly very good.

The big, season-defining tactical change came early, though, when it became clear that Andre Horta wasn't going to work out, and when Lee Nguyen got hurt. At that point, Bradley put Latif Blessing – who'd alternately been a back-up right winger, a back-up left winger, a back-up forward, and an emergency right back – into the midfield in front of Mark-Anthony Kaye and Eduard Atuesta.

And that's when LAFC became not just the best possession team in the league, but the best pressing team in the league.

HIGHLIGHT: Throughout all their regular-season dominance – the 16-game pre-Gold Cup stretch in which they lost just once; the 4-0 gutting of San Jose in which Carlos Vela scored one of the best goals in MLS history; the Decision Day presented by AT&T finale in which a hat-trick of Vela golazos gave him the single-season goals record and LAFC the single-season points record; the Shield-clinching home win against Houston in late September – there were two gigantic questions.

Gigantic question No. 1 was "Can they beat the LA Galaxy?" For all LAFC's dominance, they'd somehow managed to blow lead after lead whenever they played their next-door neighbors, to the point where it was pretty obvious that the Galaxy were in their heads.

And then, this:

Taylor Twellman called it the biggest non-MLS Cup game in league history, and he was absolutely correct. It was the absolute high point of the season.

LOWLIGHT: ...and maybe it was too high, because the comedown was sharp and quick. Gigantic question No. 2 was "could they enshrine their other-worldly regular-season dominance by winning MLS Cup and thus staking a very, very strong claim as the best MLS team of all-time?"

They could not.

REVELATION: It's Blessing by a mile (shouts to Eddie Segura as well), but since I already wrote about him, let's take a different approach:

The big revelation was that LAFC are sitting at a truly high-stakes table in the global transfer market. They went out this summer and spent their open DP slot on Uruguayan winger Brian Rodriguez, who was one of the best attackers at the U-20 World Cup and is already a full Uruguayan international (he scored against the US in September). They beat out big clubs from Big 5 leagues for him. He's a higher-rated young player than Diego Rossi, who they'll probably sell for $10 million or more this winter.

That same window they somehow carved out enough cap room to sign Ecuadoran left back Diego Palacios, who wasn't just one of the best left backs at the U-20 World Cup, but was one of the best left backs in the Eredivisie last year. Barcelona wanted him.

This is the type of player who'd usually move to Ajax, PSV, Feyenoord or, say, Schalke or Lyon. But he moved to LAFC.

I don't think the English-speaking press here has appreciated how significant LAFC's summer window was.

DISAPPOINTMENT: After Kaye got hurt in the middle of 2018 I (and Bobby Warshaw) spent a lot of time in the second half of that season explaining how LAFC had gone soft in the middle without him, lacking a true ball-winner or natural No. 6 who could do the nasty, field-compressing stuff needed at that spot. It's not that Kaye was that guy – he's very much a box-to-box player – but it's that his strengths in that regard perfectly concealed most of the defensive weaknesses of Eduard Atuesta, a former attacking midfielder that Bradley was converting to d-mid.

Bradley took umbrage.

"It makes no sense to me," he said to a scrum of reporters at the SuperDraft in January. "We played most of the year in midfield with – I call it 1 and 2, 1 deeper and 2. In certain moments, if the ball can't go to the deep one, he moves just forward a little bit and the other one moves back. When the ball moves forward, they rearrange. That type of fluidity and that type of understanding is important. Most of the games Eduard Atuesta played, he played as a No. 6. It might not look like someone else's idea of a No. 6. I believe in guys who can serve passes and use space. I think Sergio Busquets is damn good. Xabi Alonso is damn good."

I mean, me too, to all of that. But you need the defensive stuff along with the game-controlling, ball-spraying, field-spreading stuff. Once Kaye got hurt before the playoffs and was replaced in the XI by Nguyen – another guy who's definitely not a ball-winner – LAFC were suddenly soft in the middle again:

Losing that way in 2019 has got to burn, given what happened down the stretch in 2018. Not even the best team in MLS history can function without at least one deep-lying ball-winner.

PLAYERS TO BUILD ON IN 2020: W Carlos Vela, W Brian Rodriguez, MF Latif Blessing, MF Mark-Anthony Kaye, CB Eddie Segura, CB Walker Zimmerman, LB Diego Palacios

They'll go into next year among the favorites yet again. Even if Vela chopped 10 goals and five assists off his total, that'd still be a 29g/10a season – i.e. the second-best in MLS history. The central midfield is elite, the center backs are elite (though they did fall off in the second half of the season), and the fullbacks should be elite.

I'm not sure they'll expend quite so much energy going after another Shield, but it wouldn't shock me at all if they went head-first at the CCL.

OFFSEASON PRIORITY: Rossi's not there because we all know he's likeliest to be sold. Notice Atuesta isn't there, either? That's because there's significant overseas interest in him as well. I would not be at all shocked if they were both gone once the window opens.

Tyler Miller's return in goal is a question mark, and while I think Diomande will be back, I also think that's the spot where LAFC should use their open-once-Rossi-is-sold DP slot. Imagine the above lineup plus, say, Miguel Borja? Or Rogelio Funes Mori? Or Nicolai Jorgensen? Or – not even kidding here – go buck wild and get Gabigol. Imagine trotting out Rodriguez, Gabigol and Vela, left-to-right, week after week. Could they hit 100 goals? Holy hell, man, it sounds ridiculous, but why the frack not.

The point is this: upgrades are available, and as noted above, LAFC are sitting at the high-stakes table. They should make another splash. At the same time they've got to use a little bit more of that loot to build a little bit more depth in central midfield and along the backline.

If they do that, then they'll be the best MLS team I've ever seen. Again.