initialize self.p