first draft of range operator