rough coding - shorten field names, rework state machine
rough code - rework connection logic, add i/o and flow control params