add assembly reduction function