scales well to very large datasets