MikeLittle:
There is no need to go to a state if there is nothing in the serial buffer to process.
If that is true then your approach will work. I had not considered designing a program like that. I prefer to receive the data independently of other activities as that allows me to view the received data as part of the debugging process.
...R