Add #merge_if and use it for normalizing some opts.
Simplify opts and decouple them onto their respective classes.