refactor lpl