training, testing, and cross-validation added