Moved loading of data to DataModule

In this way, the code for loading of data can be reused within the
dataModule rather than having it duplicated in every entity that uses data