B.
Join the club, sister. Don't beat yourself up too much. I don't know a single parent that doesn't yell sometimes. The problem is that kids tune us out especially when we nag and yell. It can be really damaging to children if they are berated and belittled, but since you confessed and asked for help I'm guessing you aren't abusive.
I have an almost 5 year old girl, and what works for me is having explicit rules. If she doesn't know the expectations then we have problems. I also have to be really consistent about discipline, because if I make an exception she thinks it is the new rule. Adult time outs are good, because this shows the example of self restraint and control which is ultimately what we are trying to teach with discipline. If the yelling is a habit for you, maybe it could be a family project to stop the yelling. Make a bank and anyone who yells has to put a quarter in the jar. If it can work for swearing, why not yelling? If you feel like yelling go find some quarters first, it might give you enough time to cool off before you blow up. Hearing the clinking of quarters may become the family sign that someone is about to get it.
Keep in mind yelling is not discipline it is tantrum behavior, but a stern tone of voice used when you are serious is irreplaceable. You are the boss and what you say goes. If he doesn't cooperate you don't have to give him privileges. If he loses things that matter to him he will not challenge you as much. Make sure you are paying attention when he is being good. Complimenting him will change the whole tone of your relationship if it has become negative from a pattern of not minding then nagging that builds to anger and yelling.
Good luck. It is not easy to change, and he will test you. If you say you are not going to yell, expect that he will ramp things up to see if he can get you to react. When he can trust you to be calm, you'll see an improvement in behavior.