Added self-update feature