USART Irq handler

and some cleanup