introduce IUpdateHelper interface to break circular injection dependency