don't just exit for faults, it is better to throw exceptions
Iterate over cameras until we find one that works