Maybe have it call ```deregisterListener()``` if callback is null?