now using repeatedly instead of an explicit lazy-seq