I agree with Castlemaid. Your pup, yes he is still a pup, needs to learn to respect you and you need to learn how to handle and correct your pup fearlessly. That will take both of you going to the trainer together.
You'll need a trainer that is not 100% positive training. You need someone with a good balanced approach between teaching positively and then correcting disobedience. Today my pup wanted to go play with another dog at the vet and no amount of happy talk or tasty treats would get him to focus back on me. It was embarrassing. I pulled him straight up by the collar and brought him out. Once we hit the sidewalk, he was all..."oh, hi, I remember you..."