diff --git a/static_src/react/issue-wizard/SelectMenu.tsx b/static_src/react/issue-wizard/SelectMenu.tsx
index 3b0b96d..f440d55 100644
--- a/static_src/react/issue-wizard/SelectMenu.tsx
+++ b/static_src/react/issue-wizard/SelectMenu.tsx
@@ -7,65 +7,7 @@
 import {makeStyles} from '@material-ui/styles';
 import MenuItem from '@material-ui/core/MenuItem';
 import TextField from '@material-ui/core/TextField';
-
-const CATEGORIES = [
-  {
-    value: 'UI',
-    label: 'UI',
-  },
-  {
-    value: 'Accessibility',
-    label: 'Accessibility',
-  },
-  {
-    value: 'Network/Downloading',
-    label: 'Network/Downloading',
-  },
-  {
-    value: 'Audio/Video',
-    label: 'Audio/Video',
-  },
-  {
-    value: 'Content',
-    label: 'Content',
-  },
-  {
-    value: 'Apps',
-    label: 'Apps',
-  },
-  {
-    value: 'Extensions/Themes',
-    label: 'Extensions/Themes',
-  },
-  {
-    value: 'Webstore',
-    label: 'Webstore',
-  },
-  {
-    value: 'Sync',
-    label: 'Sync',
-  },
-  {
-    value: 'Enterprise',
-    label: 'Enterprise',
-  },
-  {
-    value: 'Installation',
-    label: 'Installation',
-  },
-  {
-    value: 'Crashes',
-    label: 'Crashes',
-  },
-  {
-    value: 'Security',
-    label: 'Security',
-  },
-  {
-    value: 'Other',
-    label: 'Other',
-  },
-];
+import {SelectMenuOption} from './IssueWizardTypes.tsx';
 
 const theme: Theme = createTheme();
 
@@ -74,15 +16,19 @@
     display: 'flex',
     flexWrap: 'wrap',
     maxWidth: '65%',
+    marginRight: '1rem',
   },
   textField: {
-    marginLeft: theme.spacing(1),
-    marginRight: theme.spacing(1),
+    margin: '0',
   },
   menu: {
     width: '100%',
     minWidth: '300px',
   },
+  description: {
+    fontSize: 'small',
+    color: 'gray',
+  },
 }), {defaultTheme: theme});
 
 /**
@@ -92,8 +38,17 @@
  *
  * @return ReactElement.
  */
-export default function SelectMenu({option, setOption}: {option: string, setOption: Function}) {
+type Props = {
+  optionsList: SelectMenuOption[] | null,
+  selectedOption: SelectMenuOption | null,
+  setOption: Function,
+};
+
+export default function SelectMenu(props: Props) {
   const classes = useStyles();
+
+  const {optionsList, selectedOption, setOption} = props;
+
   const handleChange = (event: React.ChangeEvent<{ value: unknown }>) => {
     setOption(event.target.value as string);
   };
@@ -105,7 +60,7 @@
         select
         label=''
         className={classes.textField}
-        value={option}
+        value={selectedOption}
         onChange={handleChange}
         InputLabelProps={{shrink: false}}
         SelectProps={{
@@ -117,17 +72,25 @@
         variant="outlined"
         fullWidth={true}
       >
-      {CATEGORIES.map(option => (
-        <MenuItem
-          className={classes.menu}
-          key={option.value}
-          value={option.value}
-          data-testid="select-menu-item"
-        >
-           {option.label}
-        </MenuItem>
-       ))}
+      {
+        optionsList?.map(option => (
+          <MenuItem
+            className={classes.menu}
+            key={option.name}
+            value={option.name}
+            data-testid="select-menu-item"
+          >
+            <div>
+              <div>{option.name}</div>
+              {
+                option.description ?
+                  <div className={classes.description}>{option.description}</div>
+                  : null
+              }
+            </div>
+          </MenuItem>))
+      }
       </TextField>
     </form>
   );
-}
\ No newline at end of file
+}
