added device wrap