P6 implementation