better redirection with args support