Initial code commit. Working, but missing some options like parity, flow-control, etc.