Refining lots of stuff, working on SerialPort