In the process of that, fix a bug in how the parent class constructors were invoked.
For now, this just allows executing commands
Put tests into directory structure equivalent to that of the code itself, for better separation (hopefully)