implemented the opts.data object