options: replace some return types with OptionsFunc, for clarity and conciseness