1 second for 20 million range? need optimizing