Generic device interface