refactor arg