Some refactoring of Engine methods