An excellent explanation can be found here.