mv various train into their own file
speed inner_join by training the data frame that has the smaller number of rows, inspired by @Errrriikkkk's pull request, but done internally. #326