str.substr(0,1) use offsets rather than reassigning the string. Probobly about half the time to do this... still too damn long though... should probobly attempt to merge the attr generation too.