Surfactants & water. 

I understand that a surfactant lowers the surface tension of water, but how? Are cationic and anionic surfactants disrupting the h-bonds in water at the surface? E.g cationic pulling the oxygen ion away from the surface? 
What about non-ionic surfactants? 

If the same amount of surfactant is added to different water samples, what is it that determines which will give the lowest surface tension. Eg will anionic lower it more than a non-ionic and cationic surfactant? Eg surface tension of water is lowered by the most by the addition of sodium lauryl sulphate (anionic) > Brij (non-ionic) lowers it but not as much > cetrimide (cationic) lowers it the least.