implemented selfupdate support