added tentative semi-supervised methods