added opts.title support