Hi Ivica, 

I don't really like this part where you throw IllegalStateException and then a few lines down catch Exception and rethrow IllegalArgumentException - maybe to factor that part of code in a separate method? (also, it would be great if you could write a unit test for this feature) 

Regarding the pull request, could you please describe your use case where 'dataSetLoaderClass.newInstance()' approach does not work for you? 

I think using alredy existing data set loader instance is a nice feature to have, but would really like to hear what does @philwebb think about it and if there is any specific reason why did he decide to use the 'newInstance' approach...

Thx!