add keepalive
solve conflict