add comments to DataManager, and add some exceptions