multi-arg dispatch