improve speed
periodic update