@qiangxue should we add `header`, I think all that can be enclosed in the `caption`