Using the OptionsResolver instead of reimplementing it poorly