args and guarded