options refactored