added a run_once method with a timeout parameter