add cycle, eachuntiln, detect, and added optional context arguments