refactoring all options