The Design of the prototype 1
This is the statechart of what I have implemented in the first prototype.
The source code is available at:
Prototype 1