You are right to switch him.....Purina is a poor quality food. I am not to crazy about Royal Canin. I recommend Solid Gold, Canidae or Chicken Soup For The Puppy Lover's Soul. You can go to the websites of the manufacturers to find locations where these are sold. There are a few other brands that are good also. Go to
http://dogfoodanalysis.com and look at the 5 star dog foods. Once you select a new puppy food then you need to switch him slowly over a several day period. You might experience some soft stool at first in going from a poor quality food to a premium quality. I have found that dog foods with corn in them cause larger amounts of stool and more smelly stool. Best of luck.