smarter args processing