Iteration is done through templates. Removes the need for the enabled engine list/vector. Reduces API complexity.