use the  weak change listener of the public API instead of the propritary