Окончательно причесал код.
Понатыкал энтеров, чтобы легче читалось и чтобы увеличить количество строк. В заголовочных файлах - барикомменты.