dynamic opts + style + contents