Refactor a bit in ShiftAssignment