Functions that should be implemented in subclasses now raises NotImplemented
In some cases it could be a bit of a hassle, such as the module class functions output register/update logic/ update registers. However it is much harder for bugs to split through unnoticed since we now need to explicit implement functions that pass instead.
Closes #16 (closed)