Changed `Options` to follow a more builder-like pattern so adding new
options doesn't always break the API