added SoAssign