revise unsupervised