throw an expection after TTL
adding short circuit optimization