add argument validation.