normalize with opts