unified runner interface