Barack Obama’s final two years don’t officially begin until January, but in reality the last phase of his presidency starts this coming week, with the much-anticipated battles over immigration and the Keystone XL pipeline. On both, he’s going to stand up to the Republicans, it appears. And the Republicans are going to go ballistic, especially on immigration. We’re going to start hearing the I-word from some of them, as indeed we have already.

Things may or may not reach the point of impeachment, but we can be sure of this much: The Republicans are going to react by saying something like, “This proves the President has no intention of working with us, has total disregard and contempt for the electorate that just spoke, and it removes from us any obligation to work with him on anything.” I guess they’ll add “although we will of course place good, pro-jobs legislation before him for the good of the American people,” because they have to say that and because a certain percentage of Americans is actually naive enough to believe it.

It will be the baldest hypocrisy; and I really can’t wait to hear these people, who truly did show spitting contempt for the electorates of 2008 and 2012, start lecturing Obama on that point. But it may well work. And it’ll work in part because the White House, and Democrats generally, haven’t been effective in framing either of these issues, especially the immigration one. What should they have done?

Here is the central fact of the immigration bill: It could have passed the House of Representatives, and probably easily, at any time since the Senate passed it in June 2013. Virtually or literally every Democrat would have voted for it (180 or so); and there’s no question that at least 40 Republicans would have, too. The Chamber of Commerce and some major evangelical groups back the bill, as do many of the party’s major donors, who are understandably giddy at the prospect of more cheap labor flowing into the country.

The bill has its flaws of course, but it’s something we haven’t seen in Washington in many, many years: a genuinely bipartisan response on a major issue. The left gets its path to citizenship, which is the only real-world solution when you’re talking about 12 million people, the vast majority of whom are (even though they came illegally) now law-abiding and hard-working people once ensconced; and the right gets (yes, it does) heightened border security. Nobody truly loves it, but nobody ever truly loves big compromise legislation. It is, however, how Washington is supposed to function.

So there are, or were, plenty of Republican votes for it in the House. In fact the GOP pro-reform votes would likely have been closer to 80, maybe even 100, than 40. So it could have passed—no, would have passed—by somewhere in the 260-175 range. Other observers may have a lower number of “yeas”, but trust me, no person from either party speaking honestly would tell you that it would have failed. And Obama would have long since signed comprehensive immigration reform into law.

So if it had the votes, why didn’t it come up for a vote? Well, because it had the votes! The Republicans simply can’t give Obama a victory of any sort. But also: Because most of the votes for it would have been Democratic. Yes, this is our old friend the “Hastert Rule”—a Republican speaker can’t bring any matter to the floor unless it has a majority of Republican votes. The red-hots in the House are holding a constant knife to John Boehner’s you-know-what’s, and he is afraid of them, and so a bill that passed the Senate by more than two-to-one (68-32) and would have passed the House by something not too far from that was left lying on the floor. And when this session of Congress ends, the Senate version dies, so the Senate will have to go back and do it all over again. Try holding your breath waiting for that, especially with the new more conservative Senate that will be seated on January 3.

So here’s the reality. It’s been 16 months, nearly 500 days, since the Senate passed the bill. The House could have passed it on any one of those days. But Boehner and the Republicans refused, completely out of cowardice and to spite Obama. Insanely irresponsible. And on top of that, Boehner told Obama in June that he was not going to allow a vote on it all year. In other words, the Speaker told the President (both of whom knew the bill had the votes) that he was not only going to refuse to have a vote, but that he was going to let the Senate bill die.

And now, when Obama wants to try to do something about the issue that’s actually far, far more modest than the bill would have been, he’s the irresponsible one? It’s grounds for impeachment?

It’s mind-boggling (except, you know, what’s mind-boggling at this point?). And yet, this will be the media frame: “Obama throws stink bomb.” And that is partly the Democrats’ fault, because what percentage of Americans even knows that the House could have and would have passed this bill at any time? I’d guess maybe 20 percent tops. And it could be more like 5 percent.

The White House and the DNC and all of them should have been out there pounding this every day. “Day 216. Where’s the Vote?” “Day 217. Where’s the Vote?” “Day 218...” And so on. There was a little of this among Latino advocacy groups, but they lacked the money and juice to bang this fact through the skull of a majority of Americans.

And if that majority of Americans were walking into next week armed with that knowledge, I think the debate we’re about to have would be playing out much more encouragingly than it actually will. Just watch: I predict polls will come out in two weeks’ time showing that majorities or pluralities put more blame for the mess on Obama than Congress. And those polls will be a reasonable reflection of what Americans have—and have not—been told about the situation by the two parties.

As for Keystone, Obama talked some smack in Myanmar, making the case that the project was not a big job creator, that it wouldn’t lower Americans’ gas prices in any meaningful way, and that it would mostly benefit Canada.

He was very good—but again, why haven’t he and the Democrats been saying this for months? Then at least the American public would have been getting an alternate theory of the case about Keystone. As it is, all most people know is: Keystone. Jobs. Pesky environmentalists. Obama sides with the latter.

And here’s another thing the White House might have been doing on Keystone, and it proves yet another point about this ridiculous Congress of ours. The President could have been sending strong signals for months that said, “Okay, you want Keystone, maybe I’ll give you Keystone; but what are you gonna give me?” That’s politics. It’s a fine old game, when it’s done well by both sides, and that is how it’s played.

But today’s Republicans don’t play that way. Their idea of a “negotiation” is not “you give us Keystone, we’ll give you a few green-energy programs and tax credits.” Their idea of a negotiation is, “you give us Keystone, and we won’t impeach you.” Or “you give us Keystone, and we may refrain from throwing the world financial markets into turmoil.” There’s very little point in Obama even trying to deal with them.

They’re going to be a slog, these next two years. And unless the Democrats get a lot better at putting their arguments out there, it’s going to be a slog that may well end with most Americans thinking that the inaction is Obama’s fault and they might just as well go ahead and elect a Republican president to go along with the Republican Congress. That’s a tactical war the Democrats must not lose.