only regerate text when necessary. should be ok