The key to changing direction is to never let the lead go tight. What you want to do is get your dog to pay attention to you. That is the first step. so when you are walking, give yourself about 2 feet of slack on the leash. Once you can see your dog's tail in front of you, change direction and let go of the slack. This prevents you from pulling the dog in the other direction but it forces the dog to pay attention to you. If you pull the dog, he will naturally pull the other way. A tendency is for the dog to walk well in the opposite direction and then resume pulling when you are walking in the direction you want to go. So once you've changed direction, change again and praise your dog when he turns around with you.

Do this for 2 weeks consistently. You may never leave your driveway but your dog will hopefully pay attention to where you are. The next step is to get him to walk with you. Whether you want your dog to 'heel' or 'walk politely', name the behaviour you want. Have a high value treat with you such as a hot dog ( a whole one), something long that you can hold in your hand. With your dog on the side you want him to walk on, say the command, (like 'walk nicely"), shove the treat in his nose but don't let him eat it. Start walking while keeping your hand at your side. Every few steps, let him have a nibble. If you have a small dog, you can smother peanut butter or cheez whiz on a wooden spoon, then cut a small corner off of a baggie. Put the spoon in the baggie so that the end is in the corner that is cut. This will allow the peanut butter or cheez whiz to ooze out slowly. Tie the baggie to the spoon and shove the treat in your dog's nose - say your command, start walking with the spoon and baggie always down by your side. Do this consistently for 2 weeks and soon you should have a polite walking puppy. The key is consistency and patience!!! Don't let him pull sometimes and not others. Each time you allow him to pull, you are rewarding him for pulling. Good luck!