@George Sorry for the late reply. This is the main point which I am concerned about. And from what I understand, this is THE code that makes session's keyed array work.
Also, another issue I have with this method is that Ben is using another Array and updating that in session. Can the same thing be done without using another Array, directly in the session, and using the UI picker?