Make acknowledge and unacknowledge channels part of the struct

The struct needs to exist for the duration of the channel for
acknowledging actions so that the library used can keep a permanent
reference to them.