Heading into Year 3 of the Kyle Shanahan era, the San Francisco 49ers have not yet really had the ideal version of their team on the field. The Niners identified Jimmy Garoppolo as their quarterback of the future and sent a second-round pick to the New England Patriots to acquire him, but he played only a few games down the stretch of that first season while picking up the offense on the fly. After spending last offseason as the starter, Garoppolo lasted just two games before tearing his ACL in Week 3 of the 2018 season; and this was after free-agent acquisition Jerick McKinnon tore his ACL during the preseason. 

The 49ers hope to have both players healthy for the start of the 2019 campaign, and if Shanahan is to be believed, Garoppolo seems to be progressing nicely in his rehabilitation.

"I feel great," Shanahan said, regarding Garoppolo's rehab. "Everyone says the rehabs go successfully so I'm not going to sit here and act like it's any different. But the neat thing about him going through all this right now is that he's in our building every day, where normally that wouldn't happen if he wasn't going through all this stuff. So, I get to watch out my window, see how his rehab's going. And if you just went off that, you would think he could play now. Because he can drop back, he can throw and everything, but we're going to be patient with him, make sure he can take some hits. That'll be a while before he can do that, but, plenty of time before the season."

Earlier this week, Shanahan was even more optimistic about Garoppolo's progress. 

"It's very controlled movements and stuff," Shanahan said Tuesday at the NFL owners meeting, per NBC Sports Bay Area. "When he does all that it does look very good, which means he's getting closer. And that's why hopefully it will be full-go for training camp and I think we will get a lot of work with him in OTAs also."

Garoppolo has an 8-2 record in 10 career starts, but he has thrown only 361 passes during his five-year career so there is not much of a sample size on which to judge him. He has played well when on the field, but he's also suffered two injuries in those 10 starts, one of which knocked him out for the year. The 49ers paid him handsomely to be their long-term starter, and they'll have to hope he can carry over the strong performance while avoiding injuries going into the future.