The code in progress.
Behaviors are not checked, and I'm really tired.