re-arch with UDP