pp correction refactor