It doesn't seem worth the trouble to reduce amount of code in the driver. Removing automatic registration (along with distinguishing between network timeouts and context timeouts) seem sufficient.