Implemented HardwareSerial and Stream

I'm not sure why you are buffering this yourself. It is buffered by the OS.