better option error/warning handling

- API changes, only minimal implementations in modules