io is the bottleneck