oll pll algorithm