adds support for del and batch, now requires key and channel in publish method