p6 and p7: implementations