requirements 1. works live so live instance never tears down listeners on interfaces that haven't changed 2. accept all arguments we currently do a startup 3. figure out which listeners need to be torn down, and only tear down ones for addresses that have changed
requirements