script can now self-upgrade