full USART implemented