engine: require loop and name