nice way to introduce random aspect to a change fn