add PPCA (tested)