add conditional for has_data_changed? method