added Discard protocol support