reworked engine factory to be a class, less hacky
engine list dynamically obtained when engines imported
usual test backup