pll refactor