JBIDE-12821 - rewrote the scanners to use generics and interfaces