why not just default `caption = ''` in the argument