will not run if ARGV is empty