moved multiplexing to machine level