need to clone initial value so it doesn't get trampled by in situ mutations.