remove switch, call factory interface