implement functionality of device handling and enumeration