separted validation and training feature, so that dont need to be in memory at the same time
parellel city and country prediction
memory sharing between threads