Implementation

The main modules are described below. Full source code is available in GitLab.