Used lazy concat so that recursion depth isn't hit