implement each set-option case