add validation, confusion matrix generation