implemented auto-update