functional steam engine model