new device abstraction
Resolve merge conflict.