updating primitive units