v3: update ui