Created DataSource class. SCM implemented as a DataSource.
General refactoring for supporting a generic list of DataSource.