Fixed Object Oriented Design of genTrace.
It should only be implemented in one place - the parent class. The whole point having an object oriented design is to keep us from needing to reimplement it. Rewriting the same code in three places increases the errors we have to debug, and makes the code cluttered and harder to read.