what if p1 is nil. Does it behave as expected? I supose, it doesn't.