TAP5-2096: correctly scan for classes in nested directories
most of the changes such as making the inner Job class static were necessary just to make the class testable