introduce mux layer

add a mux layer to the get function to suport timeout and prepare for
multilale soruses