add async to IDevice methods