Proposal for how to handle arguments

See bug 1102371
In general it looks like you're doing the right thing... but it's a lot of statements :)

Could probably be done simpler...