Note that this module is less general so that we won't use the observer pattern as `wallpaper` here.