Reload now uses plain old ElasticSearchModel to avoid side effects. Refactoring out parse_data from model_factory to make it easier for custom model_factory