recursive expand p1