Revised decision loop