49ers need better health, more production from Reuben Foster, Solomon Thomas

Here's a look at the first-half impact of the San Francisco 49ers draft class:

Solomon Thomas, DL, first round: Thomas played a lot and has been about what was expected, though a knee injury has him out until after the bye. He plays hard and has been solid against the run. But he also hasn't proved to be much of a pass-rusher off the edge, garnering much of his quarterback pressure based on hustle more than athleticism. The 49ers still seem to be figuring out where he best fits. Grade: Average.

Reuben Foster, LB, first round: Foster offered an exciting glimpse of what he can do in the opener but then left that game because of a high ankle sprain. He didn't return until Week 7. Upon his return, he moved to middle linebacker, which will be his long-term home, though he's moved around in recent games. The talent is undeniable, but he has to prove he can stay healthy before a real evaluation can be made. Grade: Incomplete.

Ahkello Witherspoon, CB, third round: Witherspoon was inactive the first four games, largely because he hadn't yet proved ready to contribute. He's recently taken over a starting role on a permanent basis to mixed results. He has shown improvement and the Niners could use more of it at a position of need. Grade: Average.

C.J. Beathard, QB, third round: Beathard just recently became the starter so an incomplete would also be appropriate here, but given his draft position and what he's done so far, his ceiling appears to be as a backup. There are sure to be more ups and downs for Beathard as he moves forward, but he's getting valuable experience and the Niners are getting a good look at him. It's hard to envision him doing anything that would turn his ceiling with the team into anything more than a No. 2. Grade: Below average.

Joe Williams, RB, fourth round: Williams didn't make it out of training camp, landing on injured reserve with an ankle injury. It probably wouldn't have kept him out all year but he was clearly behind other backs and needed a year to get in better shape anyway. Grade: Bring on 2018.

George Kittle, TE, fifth round: Kittle earned a starting job right away and has occasionally been one of the team's most effective pass-catchers. He's also struggled with his share of costly drops. Still, he has a promising future, especially given where the Niners got him in the draft. Grade: Average.

Trent Taylor, WR, fiftth round: Considering where he was drafted, Taylor's production has been solid. The Niners handed him their slot receiver job because he earned it out of training camp. Since, Taylor has been an OK target underneath but hasn't made many big plays and had a costly fumbled punt return against Dallas. Grade: Below average.

D.J. Jones, DT, sixth round: The big nose tackle has been a regular rotation piece on the defensive line, playing about 17 snaps a game. He does a good job of taking on multiple blockers and is a better-than-expected athlete. There's potential for him to be a solid contributor moving forward. Grade: Average.

Pita Taumoepenu, LB, sixth round: Taumoepenu was always going to be a developmental prospect and that's exactly what he's been so far. He's only been active for two games and hasn't had much of a chance to play. Grade: Incomplete.

Adrian Colbert, S, seventh round: Injuries have been an issue for Colbert so far, but he's proved helpful on special teams and has some positional versatility on defense that makes him someone worth keeping around for the future. And his role is only going to expand after the arm injuries to Jimmie Ward and Jaquiski Tartt. Grade: Average.