start to use separate classes for outputDevices
define outputDevices as classes