start more flexible input protocol
End of prototyping.
Time for putting the pieces together again with error handling and
testing for each part.