An implementation in C++. Strictly OOP built on QT5