better arg order