verified checkValue()
started reviewing setDirty