If more than one callback is added, the first one will be lost. This doesn't matter in our case since we only add the same callback(handle_write), so as long as it's added, it's fine.

Yes, I should rename it to set_callback, this name makes more sense.