add uart (not finished)