separated USART code from communication protocol