add on_disconnect callback