Kill children when i die -- this is silly i should really use process groups
Refactor shorter so that it's a bit clearer what's going on.  Also only register on the edge i care about, and deregister others