implement IRR and PP