updater implementation

+ slight writer refactor for inheritance
bonus deleter implementation
pull this into a protected method(s) rather than triplicate the logic