implementing PPM methods