seperate buffers for read and write / added uart read functions