adding uncompleted PCA function