Use concrete named classes rather than anonymous inner classes for
engine factories
Eliminate a lot of anonymous inner classes