factored zoom update into function