There is a website called infantswim.com you can check out. I do not know much about it and do not endorse it, but I have looked at.
Now, for my perspective. I am 51 years old, have 5 children that range from 24-4. I have taught swim lessons since I was 18 years old and still teach in the summers. I have found, over the many years of experience, that the best lessons for children you sons age is to have fun in shallow water where he can fall and get up with no problems and learn how to move around in the water. You need to accompany him and show him how to have fun.
Do you have your own pool? If you do, this is what I taught my two youngest since we had a backyard pool. Teach them where the steps are and how to go up and down. Teach them where the deep water is. If they will let you, dunk them in the deep water and show them they cannot put their feet on the bottom. Then, the scariest part - let them fall in UNDER YOUR STRICT SUPERVISION so they really understand they can't stand there. I did this to my 2-year old with my teenage daughters and they were so scared but guess what happened? He made the decision not to go in in the deep end by himself - he tried but stopped when he couldn't feel the bottom. The other thing is to have them "walk" around the edge of the pool using their arms to manuver themself. By the time my daughter was 2, she could do this around the entire pool and felt very accomplished about it.
I have gravitated to teaching 5 & 6 year olds for a few reasons: 1) my shallow end is 3 1/2 feet deep and you must have some self-confidence when you are learning to swim, i.e., being able to stand in the water; and 2) you must be able to do three things at one time to learn how to swim, move your arms, move your legs and breath. That's really hard to coordinate 3 things for children under 5 - of course, there are exceptions and they are mostly children who are very acclimated to the water.
I hope this helps - good luck and be safe!
J. Ruppel, Keller