refactoring in preparation for engine merging
add demerge code path (untested)
finish engine merging
go back to storing engines in lists