It would work, one script would then check to see if the keys were one of year, month, or day. Another script would verify that it only got zip, city, or state. Those keys that it cared about, it could put those values into a hash table if it wanted, or not if it just used them right then and there. The problem is that framework like plone or rack or tomcat or whatever it is that calls your script doesn't know what are the variables that you will need. It puts them all in a hash. Oh sure that use an array to pass them all is linear, but the current attack is quadratic. First you add the first, you get an empty bucket list. Now you add the second, have to look at the first one... Now you add n, first look through the previous n - 1. See?