buff client side construction

separate vanish(), and applyBuff()