added infrastructure classes to define a new dataset