[task] added abstract classes for Device and Adapter