First serious commit. The program does not work yet.