Version 2.0 -- no crashes. Uses packets