Yeah, possibly - afraid I haven't had any experience with large quantities.. Here's my implementation, solving a different use case: