There is a fairly high chance in 3.0 that options or a group of options is a collection object instead if an array, I would check for Traversable as well