I like the idea of abstracting the 'clean up' task to a diff class but inheritance doesn't feel right to me. maybe a 'cleanup' mixin?