Change run() to take a list of types
make input[name] parsing code easier for estade@ to grok