fixes uart implementation