validate arguments

close #5