avoid altering options in-place