add IHeatable interface for heating engines, close #1954