create device superclass