Running from any segment works
Refactored context switches.

Everything still works.