added keep_alive_callback