add pca function (tested)