I'd add to the above LOTS of practice, too. Call the pup to you a dozen or more times a day with most of the recalls ending in treat and/or lavish praise and release. You can overdo the retrieves at this age but you canNOT overdo the recall. When it's time to kennel the pup or if you need to stop it running off after an attractive nuisance, go get it, don't try to test your recall. Little pups learn really fast that recall = fun at an end. Use the check cord and remember NEVER to give a command you can't enforce. Example, you're in a hurry before work and let pup out in the yard to air without his check cord. Call the pup, it runs off, you call it to no avail, pup has just learned that recall is optional. The more of these 'optional' recalls pup evades, the harder your job will be. If it has a check cord on you can always get close enough to step on the cord and reel the pup in. You don't ever want the pup to learn he can outrun you! (for me, that happens at about 3 mos.) RE the cords--I like to use one about 10-15 feet long, lightweight nylon with the end melted so it doesn't catch on stuff. Pup forgets it's there in a few days and you then have a means to enforce your recalls.
Your puppy should think coming to you is the best thing in the world. When you see him start toward you of his own accord, use that as more practice. Say your recall command (here or come or whatever you are using) & praise/treat when pup gets to you. Play games w/family members where you each call puppy to you. Take him on off lead walks in fields and woods, new spots, they come much more willingly in new strange places. Classes are good, too, lots of distractions but in a controlled environment--ideal for socialization and teaching basic puppy stuff.