moved from device specific to common