One mistake a lot of people make is to say "heel" (or preferred command) whilst the pup is pulling and jerking the lead. (not assuming this is what you do!) All that reinforced to the dog is that when you say heel they'll get a yank of the lead.
I trained Howard to walk on a loose lead not by using any command, per se, but by teaching him that he only got to move forwards on a loose lead. My theory is that dogs don't need to learn that the word "heel" means they have to walk by your side, but should learn that they don't get to walk anywhere on the lead without having it loose.
When he got in front of me, I'd take a few steps back and then start again. Soon your pup will always be paying attention to you as they'll always be wondering whether you're about to change direction suddenly Couple this with treats and praise when the lead is loose then they're far more likely to walk on a loose lead. (I'm sure that makes no sense, written down....!)