update with polling loop