methods to produce p