new version  using args