added divice iterator