only reset values that have changes
cast by classId, not constructor comparison