rework ppp method, make it usable like p