p2 logic