REWORK. Added proper specialization for assignment