Use setImmediate for less recursively
rework reports so they use the amount of traits rather than a string to decide things