updated device init