HardwareSerial write functions need to be virtual
http://forum.pjrc.com/threads/25494-Problems-with-HardwareSerial-Pointer-and-write