it defaults opts if unspecified