argument processing