need to track changed attributes otherwise they don't get saved!