Yeah, it really doesn't look good because a B is actually a decent grade. I think in the eyes of adcoms, the only reason you should be retaking a course is if you don't have good enough knowledge of the subject matter and want to try again to learn more. If you have a D, you clearly don't have a lot of knowledge of the subject matter, so retaking makes sense. However, if you have a B, you clearly have pretty good knowledge of the subject matter, so retaking looks bad. You're going into your junior year. That means you still have two years left to get your GPA up. I would recommend taking a gap year so that your senior year grades will be included in your GPA. If you get good grades for the next two years, your GPA will be decent when you graduate. Additionally, an upward trend is a good thing. I think this will look better than retaking a bunch of B's.