Add a detectorType method and relevant enumeration type. Could potentially save as some dynamic_casts when we ask for it In the process add quite a few override and final
override
final
Mentioning @nstyles that I discussed this with and @sroe