In terms of obedience, have you tried tokens (we use a set of poker chips I got at Target for $1). For doing good listening, he gets a token. Then he can earn them (three for a half-hour tv show). They also get taken away for bad behavior.
Something a friend recommended to me also seems to work. If we are leaving the house rather than repeatedly saying "Get on your coats," etc. - I say "I have my shoes on," "I have my jacket on" - it motivates far better, I find.
When my 4 1/2 year old is not making eye contact, I know he's not listening/"processing" what I say. We make a game out of getting him to listen - I say his name, and he has to say "Yes Mommy" - and when he does not, I say, oh, I tricked you. We have good giggles over it, but it is all about getting him to respond.
When I find myself yelling all the time (we all get there...) I sit down with my son and tell him I don't want to yell or be a mean mommy - and that he is making me be mean. I ask if he will be nice (do good listening) so that I can be nice too.
Good luck.