ranges should be optional