To prevent "pulling", I like to teach my students the "walk on a loose lead" on a Flexi lead. The reasoning for this is twofold. When a dog is walking at the end of a 18-20 foot Flexi, he does not pull because he can sniff and investigate away from the owner without having to pull the owner to whatever it is he is interested in. I also suggest that students use their recalls while on their recreational walks. I ask them to keep liver or cookies on their pockets to encourage the dog to return on a "come" command VOLUNTARILY, you can always reel him in if he balks.
Teaching the heel command from loose lead or Flexi is simply a graduation from the Flexi to shorter and shorter leashes, using and enforcing the heel command. The handler then releases to the loose walk for shorter and shorter time periods, while asking for tighter and closer walking patterns.
All of this can be dispensed quickly, with if the heeling work starts as a puppy of 2-3 months. Many of the pups we start at this age are ready for CGC test by 6 months old or sooner. The older dogs require more patience and effort, but it is still a simple exercise.