Initial version

This is the very first commit of the project.
It has been developing for months and it is mature enough to upload.
It can be compiled and it works correctly.
Further development is ongoing.