re: #3 Sergey Romanov
And since I mentioned it, it is only fair to link to his explanation: joelhayward.org