I see a lot of duplicated code from setValues() here. Couldn't we find a better way?