todo: spliter have to make ranges again when there is no more free ranges