implemented device and recovery api