better ack handling