new device abstraction
Resolve merge conflict.
Fix startup bug of clients.
Resolve merge conflict (Device generalisation).