Rebasing (first commit)
It compiles! Relatedly, I am not what you might call a C++ "wizard".
Forgot a few things e.g. includes
Rebasing (second commit)