Implemented HardwareSerial and Stream

Since you are requiring a constructor change, why not have the caller pass in the filename?