refactor SwapStream, receive packets via registerValueChanged