now fully supports partially labeled data