support multiple ports on client side
add strategy
implement strategy_choose_remote_addr
fix initial state