Optimization: ArrayList.remove() bottleneck gone.