add argument requirement functions