President Donald Trump forced Attorney General Jeff Sessions to resign Wednesday, a long-anticipated development in a relationship that has grown increasingly rocky during the past two years.

While Sessions was an early supporter of Trump’s candidacy, their relationship suffered early in Trump’s presidency when Sessions recused himself from investigations into Russian meddling in the 2016 presidential election — a decision for which Trump has since repeatedly excoriated him.

“We are pleased to announce that Matthew G. Whitaker, Chief of Staff to Attorney General Jeff Sessions at the Department of Justice, will become our new Acting Attorney General of the United States. He will serve our Country well,” Trump tweeted Wednesday. “We thank Attorney General Jeff Sessions for his service, and wish him well! A permanent replacement will be nominated at a later date.”

Here’s a look at the ups and downs of their relationship:

Feb. 28, 2016: Sessions endorses Trump

Taking the stage with Trump at an Alabama rally, then-Senator Sessions became the first sitting senator to endorse the controversial candidate. “I told Donald Trump this isn’t a campaign,” Sessions told the crowd. “This is a movement.”

United States Senator Jeff Sessions, R-Alabama, becomes the first Senator to endorse Donald Trump for President of the United States at Madison City Stadium on February 28, 2016 in Madison, Alabama. (Photo by Taylor Hill/WireImage) Taylor Hill—WireImage

Nov. 18, 2016: Trump nominates Sessions to be attorney general

In part because of his loyalty during the campaign, President-elect Trump nominated Sessions to be attorney general. In a statement, Trump called Sessions a “world-class legal mind” and said he is “greatly admired by legal scholars and virtually everyone who knows him.”

Jan. 10, 2017: Sessions begins confirmation hearings

Sessions appeared in January before his former Senate colleagues for confirmation hearings to become attorney general. The most significant line of questioning would turn out to be when then-Minnesota Sen. Al Franken asked Sessions how he would respond to evidence that members of the Trump campaign communicated with the Russian government. “I’m not aware of any of those activities,” Sessions responded. “I have been called a surrogate at a time or two in that campaign and I didn’t have — did not have communications with the Russians, and I’m unable to comment on it.”

Feb. 8, 2017: Sessions confirmed

The Senate confirmed Sessions as attorney general by a vote of 52-47.

U.S. President Donald Trump (2nd R) watches as Jeff Sessions (L) is sworn in as the new U.S. Attorney General by U.S. Vice President Mike Pence (R) in the Oval Office of the White House February 9, 2017 in Washington, D.C. (Photo by Win McNamee/Getty Images) Win McNamee—Getty Images

March 1, 2017: Sessions’ contacts with Russia revealed

The Washington Post reported that Sessions had spoken twice in 2016 with Russia’s ambassador to the United States, which he had not disclosed during his Senate confirmation hearing.

March 2, 2017: Sessions recuses himself from Russia matters

In what Trump would later view as the “original sin,” according to former chief of staff Reince Priebus, Sessions recused himself from any Justice Department investigations into Russia and the 2016 election because of his role in Trump’s campaign and scrutiny over his undisclosed meetings with the Russian ambassador. Months later, the New York Times reported that Trump had ordered White House Counsel Don McGahn to stop Sessions from recusing himself, and then “erupted in anger” when McGahn was unsuccessful, “saying he needed his attorney general to protect him.”

U.S. President Donald Trump (L) and Attorney General Jeff Sessions (R) attend a panel discussion on an opioid and drug abuse in the Roosevelt Room of the White House March 29, 2017 in Washington, DC. (Photo by Shawn Thew-Pool/Getty Images) Pool—Getty Images

May 17, 2017: Robert Mueller appointed special counsel

Two months after Sessions recused himself from Russia matters, deputy attorney general Rod Rosenstein appointed former FBI Director Robert Mueller as special counsel to oversee the probe into ties between Trump’s campaign and Russian officials.

May 2017: Trump berates Sessions

The New York Times reported months later that shortly after the appointment of Mueller, Trump “berated” Sessions in the Oval Office and said he should resign. Blaming Mueller’s appointment on Sessions’ recusal, Trump reportedly accused Sessions of “disloyalty,” and Sessions submitted a letter of resignation. According to the Times, Trump decided to reject the resignation after aides told him firing Sessions would create more problems for him.

July 19, 2017: Trump says he shouldn’t have picked Sessions

Before details of the tense Oval Office meeting had been reported, Trump gave an interview to the New York Times in which he said, “Sessions should have never recused himself, and if he was going to recuse himself, he should have told me before he took the job, and I would have picked somebody else.”

July 2017: Trump continues publicly disparaging Sessions

Over the course of July, the President gave interviews and sprayed out tweets criticizing his attorney general. In an interview with the Wall Street Journal, he said, “It’s not like a great loyal thing about the endorsement,” dismissing Sessions’ early endorsement of his campaign. “I’m very disappointed in Jeff Sessions.” He declined to say whether he was planning to fire Sessions, but Sessions then said he would continue to serve as attorney general “as long as that is appropriate.” Trump also tweeted about Sessions multiple times that month, with insults such as this:

US President Donald Trump(L)sits with Attorney General Jeff Sessions on December 15, 2017 in Quantico, Virginia, before participating in the FBI National Academy graduation ceremony.(NICHOLAS KAMM/AFP/Getty Images) NICHOLAS KAMM—AFP/Getty Images

Feb. 21, 2018: Trump tweets angrily at Sessions again

Feb. 28, 2018: Sessions claps back

Trump tweeted that Sessions’ handling of surveillance abuse allegations was “DISGRACEFUL!”, angered by the fact that Sessions had asked the inspector general to review potential FISA abuse instead of ordering an investigation.

But this time Sessions responded to the president’s criticism, releasing a rare statement that said he had “initiated the appropriate process” and that he would “continue to discharge my duties with integrity and honor.” That night, Sessions went out to dinner with Deputy Attorney General Rosenstein and Solicitor General Noel Francisco in what was widely seen as a show of Justice Department solidarity.

Feb. 28, 2018: Mueller investigates the Trump-Sessions relationship

The Washington Post reported that Mueller had been looking into Trump’s apparent attempts to oust Sessions from his job, specifically during a period in the summer of 2017, and “whether those efforts were part of a months-long pattern of attempted obstruction of justice.”

March 14, 2018: Trump considers firing Sessions again

According to Vanity Fair, after axing Secretary of State Rex Tillerson, Trump also discussed a plan to fire Sessions.

But Trump continued to deny speculation that was looking to replace Sessions.

June 5, 2018: Trump says he would have chosen a different Attorney General

Amid further developments in Mueller’s investigation, Trump continued to rail against Sessions for recusing himself from the investigation.

“The Russian Witch Hunt Hoax continues, all because Jeff Sessions didn’t tell me he was going to recuse himself,” Trump tweeted on June 5. “I would have quickly picked someone else.”

Aug. 23, 2018: Sessions says he won’t be ‘improperly influenced’

Sessions defended himself following further criticism from Trump, saying, “while I am Attorney General, the actions of the Department of Justice will not be improperly influenced by political considerations.”

Trump was not satisfied, asking Sessions to “look into all of the corruption on the ‘other side’ including deleted Emails, Comey lies & leaks, Mueller conflicts, McCabe, Strzok, Page, Ohr.”

“Jeff Sessions said he wouldn’t allow politics to influence him only because he doesn’t understand what is happening underneath his command position,” Trump tweeted. “Highly conflicted Bob Mueller and his gang of 17 Angry Dems are having a field day as real corruption goes untouched. No Collusion!”

Sept. 3, 2018: Trump attacks Sessions for charges against GOP representatives

Trump attacked Sessions after the Justice Department brought criminal charges against two Republican Congressmen, California Rep. Duncan Hunter and New York Rep. Chris Collin, over accusations of improper use of campaign funds and insider trading, respectively.

Trump complained that “two easy wins [are] now in doubt because there is not enough time.”

Both Hunter and Collins were reelected anyway. But Trump fired Sessions on the day after the midterm elections.

Sept. 4, 2018: Trump denies privately insulting Sessions

In his latest book Fear: Trump in the White House, journalist Bob Woodward detailed the intensifying discord between Trump and Sessions. Woodward reported that Trump had called Sessions “mentally retarded” and a “dumb Southerner” — which Trump denied on Twitter.

Nov. 7, 2018: Sessions resigns as Attorney General

Sessions resigned at the request of the President on Nov. 7, submitting his resignation in an undated letter, saying he was “honored” to have served as Attorney General.

“Most importantly, in my time as Attorney General we have restored and upheld the rule of law—a glorious tradition that each of us has a responsibility to safeguard,” Sessions wrote. “We have operated with integrity and have lawfully and aggressively advanced the policy agenda of this administration.”

Get our Politics Newsletter. The headlines out of Washington never seem to slow. Subscribe to The D.C. Brief to make sense of what matters most. Please enter a valid email address. Sign Up Now Check the box if you do not wish to receive promotional offers via email from TIME. You can unsubscribe at any time. By signing up you are agreeing to our Terms of Use and Privacy Policy . This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply. Thank you! For your security, we've sent a confirmation email to the address you entered. Click the link to confirm your subscription and begin receiving our newsletters. If you don't get the confirmation within 10 minutes, please check your spam folder.

Write to Tessa Berenson at tessa.berenson@time.com and Katie Reilly at Katie.Reilly@time.com.