implemented lpp, lm and lc