Please see detailed explanation here