more work, better device detection, upped fail #