add argument check