refactor(switch): refactor to match new spec