I actually need index because I have a parallel array (@selection_listeners) and I use the index to dig out the appropriate selection listener. Does that make sense? Is there a better way to handle this?