should only accept a time range object