so I think there is no need to define the class ShardsReader above and then instantiating it here. Instead, consider just implementing the readers function right here.

i.e., 
def iteratorSeq: Seq[() => Iterator[NodeIdEdgesMaxId]] = {
val validFiles =....
...
}).toSeq
}