IDevice implementations are now public