refactored options