added hashing to skip unchanged updates and added check for run as root