better Agent#run! method