Allow `defaultOption` to be a function

Allowing `defaultOption` to be a function in order to build options dynamically.