i find it a bit confusing that some arguments/flags come by themselves and some others inside of an `args` structure... in principle this module shouldn't depend on where the parameters come from, and it be nicer if they were homogeneously provided