Plain and simple, don't yell. Sit him down and tell him there are new rules. He will be given 1 warning and told what his punishment will be for not listening. Then, if he doesn't listen, follow thru. Right now, you've "trained" him NOT to do anything until you yell, so that's what he's waiting for. If he slams the door, make him come back, and close it properly. If he complains about some place that you've gone not having such and such, tell him fine, next time we go out, you can stay w/a sitter. And then, do it.