Better string iterator, less mallocs