refactored internal options