add another understanding of lp