better input arguments