Feature/slswitch

Merging in my SLSwitch stuff until we sync up with upstream

FYI @qiffp