update function bypass vector copies