added device registration implementation