oll pll algorithms