Multi devices handling
Create different classes for each kind of datasource to encapsulate functions and ease the creation of new types of datasource
Create different classes for each kind of datasource to encapsulate functions and ease the creation of new types of datasource