ability to add both value and label

Added ability to have values that are different than the labels.

- `value` falls back to label when it's not set.
- `default_to` compares with the `label` and the `value` to set default option