options refactor