add a lazy sequence implementation