The result file in DotifyController is opened by a supplied function, this function returns a consumer which is then used to update the file. However, the supplied file is ignored by the implementations in the latter case. A consumer should be sufficient as an argument to DotifyController, if the implementations would be a bit smarter and kept track of whether the file needed to be opened or just updated.