further refactoring
added Devices module to hold methods not related to the Driver