add argument valid check